我的应用程序是启用ARC的。
在应用程序代理中,我写了一个代码
[self performSelectorInBackground:@selector(initializeAnimationImageArrays) withObject:nil];
我的方法是
- (void)initializeAnimationImageArrays
{
NSArray *animationArray = [NSArray arrayWithObjects:
[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
[UIImage imageNamed:@"3.png"],
nil];
}
我看到了一些错误消息,如下所示
*** __NSAutoreleaseNoPool(): Object 0x926d620 of class NSPathStore2 autoreleased with no pool in place - just leaking
我通过如下修改方法解决了这个问题。
@autoreleasepool
{
NSArray *animationArray = [NSArray arrayWithObjects:
[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
[UIImage imageNamed:@"3.png"],
nil];
}
有人能向我解释一下在这种情况下发生了什么吗。
它说您没有一个自动发布池来管理自动发布的对象。默认情况下,主线程将拥有其自动释放池。当你创建一个线程时,你必须自己创建一个自动释放池。