类扩展中声明的变量与实现类中的变量之间有什么不同

时间:2014-04-02 07:07:30

标签: ios iphone objective-c

@interface TestViewController ()
{
    NSString *a;
}
@end

@implementation TestViewController
{
    NSString *b;
}

似乎* a和* b相同,都是此文件中的私有全局变量。
谁能告诉我有什么区别?

2 个答案:

答案 0 :(得分:2)

两者都是实例变量,而不是全局变量,但两种声明方法都是相同的。能够在@implementation中声明实例变量是Objective-C的最新特性,并且是更好的位置 - 实例变量是类的实现的一部分,并且(通常)不是(公共)接口的一部分

答案 1 :(得分:0)

在类扩展中声明的@properties在其他类中不可见。