为什么ARC要取消分配我的对象?

时间:2012-04-20 13:30:00

标签: objective-c ios automatic-ref-counting

我有一个视图控制器,我将其存储到一个可变数组中。

- (void)pushViewController:(KAViewController *)viewController
{
    [self.viewControllers addObject:viewController];

    if (self.count == 0)
        [self.view addSubview:viewController.view];
    else 
        [self transitionFromView:self.currentViewController.view toView:viewController.view];
}

数组(viewControllers)定义为:

@property (nonatomic, retain) NSMutableArray *viewControllers;

视图有一个按钮,当我点击它时,我收到以下消息:

  

[KAGameInfoViewController performSelector:withObject:withObject:]:   消息发送到解除分配的实例0x6e6e900

我已经确认0x6e6e900是我的视图控制器的地址。

有什么想法吗?

修改

关闭ARC解决问题。

1 个答案:

答案 0 :(得分:5)

可能self.viewControllers为零,因为你忘记了:

self.viewControllers = [[NSMutableArray alloc] init]; 

的任何地方。