【发布时间】:2015-03-25 18:11:56
【问题描述】:
我不明白为什么人们使用扩展来将变量设为私有而不是仅在实现文件中声明它们?
看看这段代码,一个使用扩展,一个使用实例变量:
//this is an extension
@interface MyClass () {
NSString *myInstanceVariable;
}
// ...
@end
or in the class implementation:
@implementation MyClass {
NSString *myInstanceVariable;
}
// ...
@end
两者都给了我私有的实例变量。为什么我会选择扩展而不是仅声明实例变量的第二种方法?
【问题讨论】:
-
我从不对私有变量使用类扩展。如果您想要的只是私人 ivars,则需要更多的输入。我只使用类扩展来添加私有属性或私下声明我的类符合一个或多个协议。
-
我认为这就是您正在寻找的(或者至少可以提供帮助):stackoverflow.com/a/13573236/3402095
标签: objective-c