If I control-drag a UI element (for instance, a UITableView) from my NIB to my .h file it will generate code like this:
// .h
@property (strong, nonatomic) IBOutlet UITableView *tableView;
// .m
@synthesize tableView;
However, many people seem to think that this would be preferable in the .m file
@synthesize tableView = _tableView;
The reasons are that it forces you to access the ivar via the property setters and getters (or use the dot-syntax self.foo) rather than directly. And it avoids naming conflicts in method names... for instance the tableView in
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
Why then does the auto-generated code not follow this convention?