现在在看别人的代码 发现他们都把h文件的内容写到m文件里
比如:
@interface MyTreeViewController ()
{
NSArray *tree;
}
@end
@implementation MyTreeViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
为什么要这么做?为什么不直接在头文件里写 @property(strong,nonatomic)NSArray *tree;
??
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
@interface MyTreeViewController () 是一个特殊分类,叫做 匿名分类。顾名思义,它没有分类名
在匿名分类中可以声明变量,这些变量都默认是@private私有变量,即使放在.h中仍然如此。
之所以放在.m中,是因为这是常见写法,一些不希望外部访问的@property、方法、变量,都可以使用分类的形式声明在.m中,这样就可以屏蔽外部访问。
具体可以参考 变量声明的不同形式,作用域等