*** __NSAutoreleaseNoPool():类NSPathStore2的对象0x926d620自动释放,没有池到位 - 只是泄漏

时间:2012-07-24 04:06:25

标签: iphone ios automatic-ref-counting nsautoreleasepool

我的应用程序是启用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];
}

任何人都可以向我解释一下,在这种背景下发生了什么。

1 个答案:

答案 0 :(得分:3)

它表示您没有自动释放池来管理自动释放的对象。 默认情况下,主线程将具有其自动释放池。 创建线程时,您必须自己创建一个自动释放池。