1

我面临着一个奇怪的问题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_asyncobjc_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!");

        });

    });
}
4

0 回答 0