iOS实例变量因未知原因而变为“NULLED”

时间:2013-04-30 09:16:42

标签: ios xcode cocoa-touch nsfetchedresultscontroller

我有一个如下所示的实例变量:

@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...
    [...]

任何人都知道为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

编写自己的setter,然后在setter中的语句上添加断点。现在您将知道设置它的代码。