ARC下的NSArray EXC BAD ACCESS

时间:2016-09-08 08:17:07

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

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

档案1 我调用了传递@ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = "company_activity", joinColumns = {@JoinColumn(name = "company_id")}, inverseJoinColumns = {@JoinColumn(name = "activity_id")}) private Set<Activity> activities = new HashSet<>(0);

的方法
<cmis:parentId>

file2的

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

self.array

文件3

最后,该方法称为

 [self.Cell setCollectionData:self.Array];

此处,- (void)setCollectionData:(NSArray *)collectionData { [self.subCell setCollectionData:collectionData]; } 导致了BAD ACCESS错误。

但是,我通过将- (void)setCollectionData:(NSArray *)collectionData { self.collectionData = collectionData; } collectionData更改为self.cellself.subcell来解决了这个问题。

我的问题是,为什么在ARC下发生了糟糕的访问问题?

1 个答案:

答案 0 :(得分:0)

您需要使用ivar作为setter方法,也需要使用getter,dealloc和init方法。你累的问题通过值设定器设定值,结果得到了无限循环的设定。我的意思是self.collectionData =一次又一次地调用此方法-(void)setCollectionData:(NSArray *)collectionData。你需要像下面那样使用它

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