2013-04-30 54 views
0

我有一个实例变量,看起来像这样:iOS的实例变量被“清零”由于未知原因,

@property (strong, nonatomic) Post *post; 

我将它设置在一个自定义的init方法是这样的:

- (id)initWithPageType:(int)pageType andPost:(Post *)post 
{ 
    self = [super initWithNibName:@"StreamViewController" bundle:nil]; 
    if (self) { 
     // Custom initialization 
     self.post = post; 
     self.pageType = pageType; 
    } 
    return self; 
} 

这是在这种情况下从不NULL。我也有以下的委托方法NSFetchedResultsController

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject 
    atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type 
    newIndexPath:(NSIndexPath *)newIndexPath 
{ 
    [...] 
    // Here self.post == nil for some reason... 
    [...] 

任何人有任何想法,为什么发生这种情况?

+0

这一个在ios6? – Balu 2013-04-30 09:27:24

+0

是的,它是iOS6。 – Anders 2013-04-30 09:29:10

+0

我认为,发布对象的所有权以某种方式过期,即使其为零。 – 2013-04-30 12:06:10

回答

2

编写你自己的setter,然后在setter中的语句中放置一个断点。现在你会知道什么代码设置它。