我的应用程序是启用ARC的。
在app委托中我写了一段代码
[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];
}
任何人都可以向我解释一下,在这种背景下发生了什么。
答案 0 :(得分:3)
它表示您没有自动释放池来管理自动释放的对象。 默认情况下,主线程将具有其自动释放池。 创建线程时,您必须自己创建一个自动释放池。