【问题标题】:Objective-C private instance variables definitionObjective-C 私有实例变量定义
【发布时间】:2011-03-29 11:54:58
【问题描述】:
我们在哪里定义私有实例变量有什么不同吗?据我了解有两种可能性:
1) 在头文件中
@interface MyViewController : UIViewController {
@private
NSString *fooString;
}
2) 第二种方式是在实现中定义:
@implementation MyViewController
NSString *fooString;
有什么区别?干杯!
【问题讨论】:
标签:
iphone
objective-c
cocoa-touch
【解决方案1】:
在第二种情况下,fooString 不是实例变量 - 它是全局变量,所以你的两种情况完全不同
【解决方案2】:
第一种方式定义了一个私有实例变量。 MyViewController 类的每个对象都有自己的私有 fooString。
第二种方式定义了一个全局变量。只有一个 fooString 实例,它对 任何 具有以下声明的源文件可见:
extern NSString *fooString;
【解决方案3】:
第一个是您创建的每个 MyViewController 的唯一 fooString。
第二个是每个 MyViewController 共享的 fooString。