Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS:7.1.2上的调度\获取\全局\队列QOS \类\后台崩溃_Ios_Objective C_Contacts - Fatal编程技术网

iOS:7.1.2上的调度\获取\全局\队列QOS \类\后台崩溃

iOS:7.1.2上的调度\获取\全局\队列QOS \类\后台崩溃,ios,objective-c,contacts,Ios,Objective C,Contacts,我有以下几段代码,它们使用block获取联系人: if (&ABAddressBookCreateWithOptions != NULL) { CFErrorRef error = nil; addressBook = ABAddressBookCreateWithOptions(NULL, &error); ABAddressBookRequestAccessWithCompletion(address

我有以下几段代码,它们使用block获取联系人:

if (&ABAddressBookCreateWithOptions != NULL) {
            CFErrorRef error = nil;

            addressBook = ABAddressBookCreateWithOptions(NULL, &error);

            ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {

                dispatch_sync(dispatch_get_main_queue(), ^{
                        if (error) {
                            //...
                        } else if (!granted) {
                            //...
                        } else {
                            // access granted
                          //...
                        }
                    });
                });
它在
7.1.2
8.1.3
版本上都可以正常工作

但是,当我尝试将
dispatch\u get\u main\u queue
更改为
dispatch\u get\u global\u queue(QOS\u CLASS\u BACKGROUND,0)
时,它在
8.1.3
上工作,但在
7.1.2
上崩溃

if (&ABAddressBookCreateWithOptions != NULL) {
                CFErrorRef error = nil;

                addressBook = ABAddressBookCreateWithOptions(NULL, &error);

                ABAddressBookRequestAccessWithCompletion(addressBook, ^(bool granted, CFErrorRef error) {
                        dispatch_sync(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0), ^{ // BAD ACCESS
                    if (error) {
                                //...
                            } else if (!granted) {
                                //...
                            } else {
                                // access granted
                              //...
                            }
                        });
                    });

iOS 8引入了
QOS\u类
标识符。如果要支持iOS 7,您需要使用
DISPATCH\u QUEUE\u PRIORITY\u
标识符。

那么我可以写什么来代替
DISPATCH\u sync(DISPATCH\u get\u global\u QUEUE(QOS\u CLASS\u BACKGROUND,0),
?什么是
QOS\u CLASS\u BACKGROUND
调度队列\u PRIORITY\u BACKGROUND
的模拟值?
将是等效值。我们应该注意的任何差异?