我面临着一个奇怪的问题dispatch_async
我有两个独立的项目:一个用于构建框架,另一个用于将框架用于某些目的。
我正在尝试执行非常简单的代码(甚至没有任何额外的代码):
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
});
});
所以如果我把它dispatch_async
放到我的项目中,它就完美了,
但是如果把它放到我的框架项目的某个方法中并构建它
,然后从使用该框架的项目中调用该方法,那么我在堆栈的第一行
收到EXC_BAD_ACCESS
错误dispatch_async
objc_retainAutoreleasedReturnValue
虽然这dispatch_async
仅适用于dispatch_get_main_queue()
队列
我尝试创建具有不同优先级的不同队列,我尝试了静态队列,
它们实际上是创建的,但dispatch_async
每次都崩溃
我相信这是与我的框架项目中构建设置中的一些标志相关的问题,
但不幸的是我找不到任何可以帮助的东西
更新:
我忘了说,这完全适用于模拟器,但不适用于设备
这是我的代码示例:
[[SingleTonOfFramework sharedInstance] executeRequest:@"SomeRequest"
success:^(id response) {
NSLog(@"works");
}];
SingleTonOfFramework - 是我框架中的一个类,
它的作用是:
- (void) executeRequest:(id) request success:(void (^)(id response))success {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
success(@"COOL!");
});
});
}