NSArray EXC BAD ACCESS under ARC



我在ARC下遇到了一个糟糕的访问问题。这是代码:

文件1我调用了通过self.array 的方法

 [self.Cell setCollectionData:self.Array];

文件2

在单元格文件中,我调用了以下方法

- (void)setCollectionData:(NSArray *)collectionData {
    [self.subCell setCollectionData:collectionData];
}

文件3

最后,一种叫做的方法

- (void)setCollectionData:(NSArray *)collectionData {
    self.collectionData = collectionData;
}

这里,collectionData导致了BAD ACCESS错误。

但是,我通过将self.cellself.subcell更改为_cell_subcell来解决问题。

我的问题是,为什么在ARC下会出现糟糕的访问问题?

您需要为setter方法以及getter、dealloc和init方法使用ivar。问题是,你厌倦了通过设置值来设置值,结果得到了设置的无限循环。self.collectionData =一次又一次地调用这个方法-(void)setCollectionData:(NSArray *)collectionData。你需要像下面的一样使用它

-(void)setCollectionData:(NSArray *)collectionData { 
    _collectionData = collectionData; 
} 

相关内容

  • 没有找到相关文章

最新更新