0
我最近閱讀了一篇關於不再需要在ViewControllers上聲明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.
,我期望編譯時或運行時錯誤,但它似乎只是在默默地失敗,使得調試變得困難。
我的行爲看到幾乎就像忽略'self.'時,屬性簡單不會更新。 – Echilon 2012-03-31 13:07:42
是的,**省略「自我」。當你使用「self」時,你直接訪問ivar **而不使用property(所以觀察者不會被通知)。你訪問的財產,從而通知觀察員,你的價值改變等 – moxy 2012-03-31 13:25:59
我半懂了。奇怪的是,如果我有例如一個數組屬性,沒有'self.'訪問,我可以添加對象,當我做一個計數後,它仍然是空的。 – Echilon 2012-03-31 14:08:49