2013-07-04 2 views
1

나는 UITableViewsubView이있는 사용자 정의 UIViewdatasource 속성에 datasource를 할당하려고를 데이터 소스를 할당 할 때 EXEC_BAD_ACCESS 충돌을 받고. 이 코드는 다음과 같다 :나는 정의의 속성에 UIView의

CustomUIView.m

- (void)setDataSource:(id<UITableViewDataSource>)dataSource 
{ 
    self.dataSource = dataSource; 
    if (!self.tableView) { 
     [self createTableView]; 
     [self setUpTableViewSizeAndAddToSuperView]; 
    } 

    self.tableView.dataSource = self.dataSource; 
} 

CustomUIView.h

@property (nonatomic, strong) id<UITableViewDataSource> dataSource; 

데이터 소스가있는 UIViewController의 속성이라고 delegateobject 제공된다.

@property (nonatomic, strong) DelegateObject *delegateobject; 

DelegateObject UIViewController.h

self.customView.dataSource = delegateobject; 

UIViewController.m

그냥 NSObjectUITableViewDataSource 프로토콜입니다.

하지만 앱을 실행하면 EXEC_BAD_ACCESS 오류가 발생하고 오류가 발생했습니다. 내 사용자 지정 UIViewdatasource 속성은 너무 많은 시간을 발표하고이 라인에서 중단되었습니다

self.dataSource = dataSource; 

내가 설정 한 좀비 진단 객체하지만 추가 정보를 볼 수 없었다. 이 문제를 어떻게 해결할 수 있습니까?

+0

문제는 해결되지 않지만 대리인 속성은 'strong'/assign'. 'strong'를 사용하면 메모리 누수주기가 끝납니다. – danypata

+0

감사합니다. 내 문제를 해결하는 법을 아십니까? – newguy

답변

1

self.dataSource = dataSource으로 전화하면 무한 루프가 생성됩니다. 설정자를 재정의 할 때 인스턴스 변수를 직접 설정해야하므로 해당 행을 다음으로 변경하십시오.

+0

Xcode에서 _dataSource가 선언되지 않음을 알립니다. – newguy

+0

알겠습니다. 알겠습니다. @synthesize dataSource = _dataSource를 CustomUIView.m에 넣습니다. 나는 이것이 내 문제를 아주 잘 해결해 준다고 생각한다. – newguy

+0

Xcode의 구버전을 사용하지 않는 한 합성 할 필요가 없습니다. – wattson12

관련 문제