实例变量可以声明得位置


实例变量可以在3处声明:

1 类的@interface处;

2 类的@implementation处

3 扩展extension处

其中,1处声明得实例变量是protected的,2,3处声明得都是private的;另外,property合成的实例变量也是private的。

分类只能访问1处的实例变量,以及扩展处得实例变量。并且为保证能访问扩展处的实例变量,必须让扩展位于类的头文件中:

//扩展在X.h的头文件中

@interface X : NSObject


@end


@interface X ()

NSString *name; //分类此时可以访问实例变量name
    
@end