2016-09-08 2 views
0

ARC에서 잘못된 액세스 문제가 있습니다. 여기 코드입니다 :ARC에서 NSArray EXC 나쁜 액세스

파일 1 I 셀 파일에 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 나쁜 ACCESS 오류 발생.

그러나 self.cellself.subcell_cell_subcell으로 변경하여 문제를 해결했습니다.

제 질문은 왜 ARC에서 잘못된 액세스 문제가 발생 했습니까?

+1

의 사용 가능한 복제 [위임에 대한 사용자 정의 setter 메소드가 호출되는 무한 회]처럼 http://stackoverflow.com/questions/37615344/custom-setter-method-for-delegate-를 사용할 필요 gets-called-infinite-times) – Larme

답변

0

setter 메소드와 getter, dealloc 및 init 메소드에 ivar를 사용해야합니다. 당신이 피곤한 문제는 가치 세터를 통해 가치를 설정하고 결과적으로 무한정한 순환을 얻게됩니다. self.collectionData =이 메서드는 -(void)setCollectionData:(NSArray *)collectionData을 반복해서 호출합니다. 그리고 당신은 (아래

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