类与类别中添加的属性要区分开来,因为类别中只能添加方法,不能添加实例变量。
经常会在ios的代码中看到在类别中添加属性,这种情况下,是不会自动生成实例变量的。
比如在:
UINavigationController.h文件中会对UIViewController类进行扩展
这里添加的属性,不会自动生成实例变量,这里添加的属性其实是添加的getter与setter方法。
@interface UIViewController (UINavigationControllerItem)
@property(nonatomic,readonly,retain) UINavigationItem *navigationItem;
@property(nonatomic) BOOL hidesBottomBarWhenPushed;
@property(nonatomic,readonly,retain) UINavigationController *navigationController;
@end
这里添加的属性,不会自动生成实例变量,这里添加的属性其实是添加的getter与setter方法。
注意一点,匿名类别(匿名扩展)是可以添加实例变量的,非匿名类别是不能添加实例变量的,只能添加方法,或者属性(其实也是方法)。
http://www.cnblogs.com/crazypebble/archive/2013/11/23/3439261.html
http://www.cocoachina.com/bbs/read.php?tid=126123
http://www.cocoachina.com/bbs/read.php?tid=132558
http://www.cnblogs.com/ygm900/p/3660364.html