I recently read a post about no longer needing to declare ivars as well as properties on ViewControllers, and have been removing the duplicate declarations from my code as I notice them.
A really puzzling effect I've noticed is that if the property lacks a declared ivar, it needs to be preceded by self.
Eg:
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
If there was a problem with accessing the variable without self.
, I'd expect a compile time or runtime error, but it seems to just silently fail, making it vary difficult to debug.