- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这段代码,有时变量 dConfiguration 是 Nil,我得到一个 EXC_BAD_ACCESS 错误,大多数时候变量说 0 键/值对,错误几乎不可能重现,我只需点击我的按钮大部分时间都能正常工作,但在极少数情况下会失败。
serviceData = data;
dispatch_async(dispatch_get_main_queue(), ^{
[loading removeFromSuperview];
_tvTable.hidden = NO;
dConfiguration =[NSJSONSerialization JSONObjectWithData:serviceData options:kNilOptions error:nil];
if (![[dConfiguration objectForKey:@"NumberOfLines"] isEqual: [NSNull null]]) {
_NumberOfLines = [[dConfiguration objectForKey:@"NumberOfLines"] integerValue];
} else {
_NumberOfLines = 1;
}
if(badget!=nil){
dBadgets = [NSJSONSerialization JSONObjectWithData:badget options:kNilOptions error:nil];
}
dValue = [dConfiguration objectForKey:sButtonType];
RowCount = (int)dValue.count;
[_tvTable numberOfRowsInSection:RowCount];
[self loadTable];
});
此变量在实现中声明为全局变量:
@implementation vcTableViewEventsManagerEvents {
NSDictionary *dConfiguration;
}
我从未实现过 alloc 初始化代码:
dConfiguration = [[NSDictionary alloc] init];
这可能是问题所在吗?如果我总是初始化变量,这个错误不会发生吗?始终进行初始化是一种好习惯吗?我在哪里可以看到 EXC_BAD_ACCESS 的更详细信息?
感谢大家的帮助。
更新 1
我已经尝试查看所有评论中的错误,也许我做错了什么,因为错误变量为 nil 这是屏幕截图:
在这个特定的时间里,变量 dConfiguration 表示 0 个键/值对,因为我添加了 alloc init。
我已经尝试过双击并尽可能快地从标签栏项目中更改,有时可以工作,有时却不能。
更新 2
正如您所问,这是错误的 BT:
thread #1: tid = 0x7bfdfd, 0x2537dd52 Foundation
newJSONString + 98,
newJSONString + 98 frame #1: 0x2537d300 Foundation
queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1,
address=0x3fe64a2)
frame #0: 0x2537dd52 FoundationnewJSONValue + 1976
newJSONValue + 956 frame #3: 0x2537d380 Foundation
frame #2: 0x2537cf04 FoundationnewJSONValue + 2104
-[_NSJSONReader parseUTF8JSONData:skipBytes:options:] + 176 frame #5: 0x2537c88e Foundation
frame #4: 0x2537ca80 Foundation-[_NSJSONReader parseData:options:] + 238
+[NSJSONSerialization JSONObjectWithData:options:error:] + 156 frame #7: 0x00121b24 guestperience
frame #6: 0x2537c718 Foundation__43-[vcTableViewEventsManagerEvents
_dispatch_call_block_and_release + 10 frame #9: 0x00495b6a libdispatch.dylib
checkJson]_block_invoke_2(.block_descriptor=0x17040f40) + 244 at
vcTableViewEventsManagerEvents.m:298
frame #8: 0x00495b7e libdispatch.dylib_dispatch_client_callout + 22
_dispatch_main_queue_callback_4CF + 1680 frame #11: 0x24b81bdc CoreFoundation
frame #10: 0x0049a654 libdispatch.dylib__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
__CFRunLoopRun + 1574 frame #13: 0x24acf2e8 CoreFoundation
frame #12: 0x24b800d6 CoreFoundationCFRunLoopRunSpecific + 520
CFRunLoopRunInMode + 108 frame #15: 0x260bfac8 GraphicsServices
frame #14: 0x24acf0d4 CoreFoundationGSEventRunModal + 160
UIApplicationMain + 144 frame #17: 0x001cb6f0 guestperience
frame #16: 0x291940b8 UIKitmain(argc=1, argv=0x00473b5c) + 106 at main.m:16
start + 2
frame #18: 0x24777872 libdyld.dylib
更新 3
我已在控制台中执行此命令以查看 JSON,在我看来是正确的:
(lldb) po (NSString *)[[NSString alloc] initWithData:serviceData encoding:4]
{
"BackgroundImage": null,
"ButtonGallery": null,
"Buttons": null,
"ButtonsEvents": [{
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "04 JUN 2016 - Horario: 11.00 - 18.00",
"Id": 23,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_15f37703-f0a0-4f10-be70-76e0118fa9f9_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_15f37703-f0a0-4f10-be70-76e0118fa9f9_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "134",
"ItemType": null,
"JsonConfigFile": "134es",
"Label": "Brazil Pool Party",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Brazil Pool Party",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "23 JUN 2016 - Horario: 20:00 - 01:00",
"Id": 29,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_5af125bb-1bdf-4fcf-9306-3b565cdbb928_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_5af125bb-1bdf-4fcf-9306-3b565cdbb928_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "140",
"ItemType": null,
"JsonConfigFile": "140es",
"Label": "Noche de San Juan",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Noche de San Juan",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "02 JUL 2016 - Horario: 21:00 - 1:00",
"Id": 30,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_7227de52-8d27-4a65-bdf7-dea08e37b968_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_7227de52-8d27-4a65-bdf7-dea08e37b968_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "141",
"ItemType": null,
"JsonConfigFile": "141es",
"Label": "Noche Amàre",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Noche Amàre",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "09 JUL 2016 - Horario: 22:00 - 00:00",
"Id": 28,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_4ad05ca3-c345-4a6f-aeb9-972610056b86_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_4ad05ca3-c345-4a6f-aeb9-972610056b86_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "139",
"ItemType": null,
"JsonConfigFile": "139es",
"Label": "Noche Flamenca Beach",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Noche Flamenca Beach",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "20 JUL 2016 - Horario: 19:00 - 22:00",
"Id": 27,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_161bab39-5ac6-43a0-84c4-5c0fa764b5b0_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_161bab39-5ac6-43a0-84c4-5c0fa764b5b0_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "138",
"ItemType": null,
"JsonConfigFile": "138es",
"Label": "Noche de luna llena",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Noche de luna llena",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "23 JUL 2016 - Horario: 21:00 - 00:00",
"Id": 26,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_c657d56d-5f24-4f28-8d0c-66afb2fae1ad_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_c657d56d-5f24-4f28-8d0c-66afb2fae1ad_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "137",
"ItemType": null,
"JsonConfigFile": "137es",
"Label": "Noche cubana",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Noche cubana",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "06 AGO 2016 - Horario: 22:00 - 00:00",
"Id": 31,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_98032ab6-b689-42d6-b19b-6b82705478a3_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_98032ab6-b689-42d6-b19b-6b82705478a3_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "142",
"ItemType": null,
"JsonConfigFile": "142es",
"Label": "Noche Flamenca Beach",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Noche Flamenca Beach",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "13 AGO 2016 - Horario: 21:00 - 00:00",
"Id": 32,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_447f28d9-ed38-4482-868e-74743cbb5a89_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_447f28d9-ed38-4482-868e-74743cbb5a89_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "143",
"ItemType": null,
"JsonConfigFile": "143es",
"Label": "Noche cubana",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Noche cubana",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "10 SEP 2016 - Horario: 11:00 - 18:00",
"Id": 33,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_a7328a94-d64d-4fd4-b0a1-a2c126c8c92c_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_a7328a94-d64d-4fd4-b0a1-a2c126c8c92c_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "144",
"ItemType": null,
"JsonConfigFile": "144es",
"Label": "Pool Party",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Pool Party",
"ViewController": 21
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "17 SEP 2016 - Horario: 12:00 - 18:00",
"Id": 25,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_9f8af8e5-56d7-433f-9661-9403196faad8_x320.jpg",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_9f8af8e5-56d7-433f-9661-9403196faad8_x320.jpg",
"ImageRetinaHeighlighted": null,
"Item": "136",
"ItemType": null,
"JsonConfigFile": "136es",
"Label": "Oktoberfest",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Oktoberfest",
"ViewController": 21
}],
"ButtonsPromotions": [{
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "",
"Id": 18,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_ba95942c-1ece-4332-9f95-eb3f95738f41_x320.png",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_ba95942c-1ece-4332-9f95-eb3f95738f41_x320.png",
"ImageRetinaHeighlighted": null,
"Item": "126",
"ItemType": null,
"JsonConfigFile": "126es",
"Label": "Desayuna con Nosotros",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Desayuna con Nosotros",
"ViewController": 20
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "",
"Id": 19,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_3b9f1e44-5f33-4eb9-987b-5e50dcaed2a7_x320.png",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_3b9f1e44-5f33-4eb9-987b-5e50dcaed2a7_x320.png",
"ImageRetinaHeighlighted": null,
"Item": "127",
"ItemType": null,
"JsonConfigFile": "127es",
"Label": "Disfruta de Nuestra Cena Buffet",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Disfruta de Nuestra Cena Buffet",
"ViewController": 20
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "",
"Id": 20,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_f0ec90c9-3383-48f7-b5cf-28a236aee9e9_x320.png",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_f0ec90c9-3383-48f7-b5cf-28a236aee9e9_x320.png",
"ImageRetinaHeighlighted": null,
"Item": "128",
"ItemType": null,
"JsonConfigFile": "128es",
"Label": "Alquiler de Bicicletas Vintage",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Alquiler de Bicicletas Vintage",
"ViewController": 20
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "",
"Id": 21,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_f72a03bf-ddd2-486e-a289-cb3e82bd08db_x320.png",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_f72a03bf-ddd2-486e-a289-cb3e82bd08db_x320.png",
"ImageRetinaHeighlighted": null,
"Item": "129",
"ItemType": null,
"JsonConfigFile": "129es",
"Label": "Parking",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Parking",
"ViewController": 20
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "",
"Id": 22,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_3dd87e35-2ae3-4ef2-a70a-f1b44e41d27a_x320.png",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_3dd87e35-2ae3-4ef2-a70a-f1b44e41d27a_x320.png",
"ImageRetinaHeighlighted": null,
"Item": "130",
"ItemType": null,
"JsonConfigFile": "130es",
"Label": "Ofertas de Grab & Go",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Ofertas de Grab & Go",
"ViewController": 20
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "",
"Id": 13,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_b8187a48-1b03-4b29-a403-f03af8433c4f_x320.png",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_b8187a48-1b03-4b29-a403-f03af8433c4f_x320.png",
"ImageRetinaHeighlighted": null,
"Item": "92",
"ItemType": null,
"JsonConfigFile": "92es",
"Label": "Habitación \"The One\"",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Habitación \"The One\"",
"ViewController": 20
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "",
"Id": 14,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_fc20ec9b-2107-4828-9796-d5234dbe80fd_x320.png",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_fc20ec9b-2107-4828-9796-d5234dbe80fd_x320.png",
"ImageRetinaHeighlighted": null,
"Item": "98",
"ItemType": null,
"JsonConfigFile": "98es",
"Label": "Disfruta de una Salida de Habitación más Tarde",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Disfruta de una Salida de Habitación más Tarde",
"ViewController": 20
}, {
"BadgeCount": 0,
"ClientId": 0,
"Frequency": "",
"Id": 15,
"Image": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_be514668-27d0-4ee8-995e-0f8f89936c9b_x320.png",
"ImageHeighlighted": null,
"ImageIconTitle": "",
"ImageRetina": "http:\/\/ServerCloud.CloudApp.net\/DesktopServerCloud\/ClientData\/4\/Images\/GVT_be514668-27d0-4ee8-995e-0f8f89936c9b_x320.png",
"ImageRetinaHeighlighted": null,
"Item": "103",
"ItemType": null,
"JsonConfigFile": "103es",
"Label": "Habitación categoría superior",
"LongTitle": null,
"Selector": "btnAction:",
"SubLabel": null,
"Title": "Habitación categoría superior",
"ViewController": 20
}],
"ButtonsTabList": null,
"DatePeriod": null,
"Details": null,
"Disclaimer": null,
"MessageList": null,
"NoBooking": null,
"NumberOfLines": 2,
"Pins": null,
"Selector": null,
"ServiceType": null,
"TabList": null,
"Texts": null,
"Titles": null,
"Url": null,
"UserCode": null
}
最佳答案
当你修改一个 block 内的变量时,你必须使用__block
说明符
__block NSDictionary *dConfiguration;
__block NSData *serviceData = data;
dispatch_async(dispatch_get_main_queue(), ^{
//...
});
关于ios - dispatch_get_main_queue() 上的 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37271283/
我有一个启用了分页的 UIScrollView,我想显示一些带有图像的“页面”。 我在主线程中加载第一页的图像并显示它。然后我开始在后台线程中加载其他页面图像 dispatch_async(l
我是 iOS 开发新手。我不知道 dispatch_get_main_queue() 所以我想从我的服务器图像 url 中获取图像大小,如 首先,我解析我的 JSON 数据并获取图像大小,如下所示 [
我使用 Reachability 和 dispatch_async(dispatch_get_main_queue() 测试互联网连接当我测试以下代码时,它可以正常工作,但会被多次调用。 家长: @p
我在 iOS 中学到了一条全局规则 -> 永远不要阻塞主线程。但是,有几次我遇到了违反此规则的开源代码片段。 下面是两个这样的例子: 以下函数取自 https://github.com/piwik/p
在完成例程中 [NSURLConnection sendAsynchronousRequest:request queue:que
我有一个 ViewController,点击按钮后我想从网络获取数据。 let myClass = Class() myClass.myMethod() { dispatch_
我有这段代码,有时变量 dConfiguration 是 Nil,我得到一个 EXC_BAD_ACCESS 错误,大多数时候变量说 0 键/值对,错误几乎不可能重现,我只需点击我的按钮大部分时间都能正
Utility.managedObjectContext().performBlockAndWait({ }) dispatch_sync(dispatch_get_main_queue(), { }
我有一些如下代码: - (void)viewDidLoad { [super viewDidLoad]; NSLog(@"1"); dispatch_async(dispatc
如何使用 DispatchQueue 类为 iOS 替换以下 Swift 代码?这是旧的 Swift 3 代码,最新的 Xcode 不会将其转换为 Swift 5。 dispatch_async(di
我有在某些情况下更改 UI 的方法。 例如: -(void) myMethod { if(someExpressionIsTrue) { // make some UI changes
关于this question我想知道关于何时使用 NSNotification(在主线程中有观察者)与使用 GCD 将工作从后台线程分派(dispatch)到主线程,是否有任何普遍接受的逻辑? 似乎
我的应用程序中有一个场景,我想在一个方法中执行一些耗时的任务,其中包括一些数据处理以及 UI 更新。我的方法是这样的, - (void)doCalculationsAndUpdateUIs {
当基本 SDK 设置为 10.9 时,我在 SWIFT 中使用“dispatch_get_main_queue()”时遇到困难。我使用的代码是一个简单的dispatch_async调用,如下所示: d
我想将所有读/写数据库操作放到后台队列中,并在完成时更新当前的 UI View 。 如果用户在我处理数据库时停留在 View 中,则没有问题。但是,如果用户在数据库操作完成之前离开该 View ,它将
我正在尝试在后台进程中创建多个 WKWebView View ,然后在它们全部完成加载后将它们添加到主线程上的 View 。 每个 WKWebView 都包含一个通过 javascript 呈现的图表
我继承了一个使用以下线程结构的代码库: dispatch_async(dispatch_get_main_queue(), { () -> Void in dispatch_async(dis
在 tutorial from Ray Wenderlich Series, 之一中他在完成 block 中使用了 dispatch_get_main_queue() 如下 func startFil
我刚刚开始在 iOS 上工作,并且一直在浏览 GCD 上的 Apple 引用资料。 dispatch_get_global _queue 返回一个并发队列,可以向其中提交要执行的 block 。 但是
我继承了一些具有这种相当不寻常的嵌套序列的代码。通常的范例将对主队列进行一次分派(dispatch)以更新 UI。下面显示的代码将对主队列的调度嵌套在对主队列的另一个调度中。 - (void)view
我是一名优秀的程序员,十分优秀!