我在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.cell
和self.subcell
来解决了这个问题。
我的问题是,为什么在ARC下发生了糟糕的访问问题?
答案 0 :(得分:0)
您需要使用ivar作为setter方法,也需要使用getter,dealloc和init方法。你累的问题通过值设定器设定值,结果得到了无限循环的设定。我的意思是self.collectionData =
一次又一次地调用此方法-(void)setCollectionData:(NSArray *)collectionData
。你需要像下面那样使用它
-(void)setCollectionData:(NSArray *)collectionData {
_collectionData = collectionData;
}