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