Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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 使用dispatch\u get\u global\u队列时需要dispatch\u释放的非ARC项目_Ios_Objective C_Multithreading_Grand Central Dispatch - Fatal编程技术网

Ios 使用dispatch\u get\u global\u队列时需要dispatch\u释放的非ARC项目

Ios 使用dispatch\u get\u global\u队列时需要dispatch\u释放的非ARC项目,ios,objective-c,multithreading,grand-central-dispatch,Ios,Objective C,Multithreading,Grand Central Dispatch,虽然使用GCD为后台线程创建的普通队列需要dispatch_释放来释放对象的内存,由于解除分配全局队列可能会导致操作系统出现问题,因此获取全局队列是否也需要执行同样的操作?我要问:保存对通过dispatch\u get\u global\u queue获取的队列的引用的对象是否需要dispatch\u release,或者dispatch\u source\u cancel是否足够 为了让这个问题更深入,我使用全局队列来设置计时器,让它们运行并触发一个事件,这个项目是非ARC的 您没有创建对象,

虽然使用GCD为后台线程创建的普通队列需要dispatch_释放来释放对象的内存,由于解除分配全局队列可能会导致操作系统出现问题,因此获取全局队列是否也需要执行同样的操作?我要问:保存对通过dispatch\u get\u global\u queue获取的队列的引用的对象是否需要dispatch\u release,或者dispatch\u source\u cancel是否足够


为了让这个问题更深入,我使用全局队列来设置计时器,让它们运行并触发一个事件,这个项目是非ARC的

您没有创建对象,因此您不拥有它。因此,您不能释放它


如果您将其传递给将保留对其引用的对象,则此对象在获取队列时应分派\u保留队列,并在完成后分派\u释放队列。

GCD API的命名约定源自CoreFoundation的命名约定:

特别是其中的Get规则回答了您的问题,API名为dispatch\u Get\u global\u queue,而不是dispatch\u create\u global\u queue,因此它不会授予对返回对象的引用