최근에 ViewController에서 ivars 및 등록 정보를 더 이상 선언 할 필요가없는 게시물을 읽었습니다. 코드에서 중복 선언을 제거했습니다.ivars가 예상대로 작동하지 않습니다.
내가 눈치 챘을정말 수수께끼 효과는 속성이 선언 바르 부족한 경우, 그것은 self.
예 선행 될 필요가 있다는 것입니다 :
CustomVC.h :
@interface CustomVC : UIViewController <UITableViewDelegate,UITableViewDataSource> {
...
@property (nonatomic, strong) IBOutlet UITableView *itemsTableView;
CustomVC .m :
[itemsTableView reloadData]; // cellForRowAtIndexPath not called
[self.itemsTableView reloadData]; // table view refreshed as expected
액세스하는 데 문제가있는 경우 변수가 self.
이 아니라면, 컴파일 시간이나 런타임 오류를 기대할 수 있습니다. 그러나 자동으로 오류가 발생하여 디버깅하기가 어려울 수 있습니다.
난 행동 seeing은'self.'를 생략 할 때와 거의 같으며, 속성 simple은 업데이트되지 않습니다. – Echilon
예, ** '자기'를 생략 할 경우 당신이 직접 "ivar **"을 사용하고 속성을 사용하지 않기 때문에 ("관찰자는 알리지 않습니다"), "자기"를 사용할 때. 당신은 재산에 접근하여 관찰자들에게 당신의 가치가 변했다는 것을 알려주고 있습니다. – moxy
나는 절반을 이해합니다. 이상한 점은'self.'없이 접근하는 배열 속성을 가지고 있다면 그 객체에 객체를 추가 할 수 있다는 것입니다. 그리고 이후에 count를 할 때 여전히 비어 있습니다. – Echilon