Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.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
Iphone 需要在执行后调用NSAutoReleasePool选择器:withObject:afterDelay?_Iphone_Ios - Fatal编程技术网

Iphone 需要在执行后调用NSAutoReleasePool选择器:withObject:afterDelay?

Iphone 需要在执行后调用NSAutoReleasePool选择器:withObject:afterDelay?,iphone,ios,Iphone,Ios,作为标题。调用performSelector:withObject:afterDelay后是否需要调用NSAutoReleasePool 我认为performSelector:withObject:afterDelay:不在主线程上,因此有必要添加自动释放池。对吗 例: 谢谢 否。此方法在调用它的同一线程/运行循环上执行提供的选择器,使用为该实际运行循环计划的NSTimer。您无需担心。如果您同时创建和自动删除大量对象,则您只需创建自己的@autoreleasepool 在您的情况下,updat

作为标题。调用performSelector:withObject:afterDelay后是否需要调用NSAutoReleasePool

我认为performSelector:withObject:afterDelay:不在主线程上,因此有必要添加自动释放池。对吗

例:


谢谢

否。此方法在调用它的同一线程/运行循环上执行提供的选择器,使用为该实际运行循环计划的NSTimer。您无需担心。

如果您同时创建和自动删除大量对象,则您只需创建自己的
@autoreleasepool

在您的情况下,
update
方法将在创建它的同一个线程/运行循环上被调用,并且将很高兴地落在主
@autoreleasepool


文档中有一些关于您正在调用的特定方法的详细信息

“您需要创建自己的自动释放池的唯一实例是,如果您同时创建和自动释放许多对象。”-这是错误的。对于分离的任何线程,您还需要单独的自动释放池。@H2CO3这是真的。不过,OP正在工作时并没有分离NSThreads。
[self  performSelector:@selector(update) withObject:nil afterDelay:0.1];

-(void) update {
NSAutoReleasePool *pool = [[NSAutoReleasePool alloc] init]; // Is it necessary
...
[pool drain];
}