NSMutableArray在iPad上被释放但在Simulator中没有被释放

时间:2012-11-14 11:21:56

标签: ios ipad ios-simulator automatic-ref-counting

我在.m代码中有以下代码

@implementation MyGameController
{
    NSMutableArray* viewsarray;
}

我正在以这种方式初始化

- (void)viewDidLoad
{
   viewsarray = [[NSMutableArray alloc] init];
   for (int i=0; i < TOTAL_ITEMS; i++)
   {
        ItemController* iv = [[ItemController alloc] initWithNibName:@"ItemPadXib" bundle:nil];

        [viewsarray addObject:iv];
    }
}

当我在这个函数的末尾检查时 - 数组是完整的并包含我的所有项目。但是,稍后它会被释放(我认为)并且viewsarray被设置为nil。

我知道这一点,因为后来我尝试像这样访问它

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
    ItemController* iv1 = [viewsarray objectAtIndex:index];
    ....
}

当我在此功能中设置bp时,viewsarraynil

我尝试将viewsarray声明为property,但行为相同

一个重要的事情 - 在模拟器上它工作得很好。有什么不同吗 ? ARC表现不同吗?

1 个答案:

答案 0 :(得分:2)

viewsarray实例变量很强(默认情况下),因此无法自动释放。内存管理(通过ARC)在模拟器和设备上是相同的。你的错误在其他地方。