我正在为我的线程使用单独的NSAutoReleasePool
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[self bulkyFunction]; // time consuming op
[self performSelectorOnMainThread: @selector(doneAll) withObject:nil waitUntilDone:NO];
[pool release];
我调用了一个分配两个字符串的函数(bulkyFunction)。
currentTitle = [[NSMutableString alloc]init];
currentSummary = [[NSMutableString alloc]init];
我在使用后释放它们。
定期调用此线程。但是当它第二次被调用时,访问currentTitle会崩溃。
是因为我的[pool release]语句释放了[currentTitle release]语句已经发布的currentTitle吗? 因为,如果[currentTitle release]被注释掉了,那就没问题了。但我担心内存泄漏。
请建议。
答案 0 :(得分:4)
[pool release]
,否则 currentTitle
不会发布[currentTitle autorelease]
某处。我认为,如果您发布了bulkyFunction
的完整内容,那将会很有帮助。