***__NSAutoreleaseNoPool():类NSPathStore2的对象0x926d620在没有池的情况下



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

有人能向我解释一下在这种情况下发生了什么吗。

它说您没有一个自动发布池来管理自动发布的对象。默认情况下,主线程将拥有其自动释放池。当你创建一个线程时,你必须自己创建一个自动释放池。

相关内容

  • 没有找到相关文章

最新更新