【问题标题】:NSArray EXC BAD ACCESS under ARCARC下的NSArray EXC BAD ACCESS
【发布时间】:2016-09-08 08:17:07
【问题描述】:

我在 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 下会出现错误访问问题?

【问题讨论】:

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


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2020-04-27
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多