Objective-C私有实例变量定义

时间:2011-03-29 11:54:58

标签: iphone objective-c cocoa-touch

我们定义私有实例变量的位置有什么不同吗?据我所知,有两种可能性:

1)在头文件

@interface MyViewController : UIViewController {
    @private
    NSString *fooString;
}

2)第二种方法是在实现中定义它:

@implementation MyViewController
NSString *fooString;

有什么区别?干杯!

3 个答案:

答案 0 :(得分:7)

在第二种情况下fooString不是实例变量 - 它是全局变量,所以你的两种情况完全不同

答案 1 :(得分:4)

第一种方式定义私有实例变量。 MyViewController类的每个对象都有自己的私有fooString。

第二种方式定义了一个全局变量。将只有一个fooString实例,它将对任何源文件可见,并带有以下声明:

extern NSString *fooString;

答案 2 :(得分:1)

第一个是您创建的每个MyViewController的唯一fooString

第二个是每个MyViewController共享的fooString