IOS中,修饰变量的关键字有四个,分别是:@public,@private,@protected,@package,其中@package在开发过程中用到的较少。
1 @public
被这个关键字修饰的变量是完全开放的,只要有这类的对象存在,就可以访问到这个变量。
2 @protected
被这个关键字修饰的变量是受保护的,只有在声明变量的这个类中和它的子类中,可以访问。
3 @private
被这个关键字修饰的变量是私有的,只能在声明这个变量的类中使用,子类也不能使用。
4 @package
这个关键字比较难理解,大致意思是被修饰的变量是封装的,在本框架内可以自由使用,效果和@public 相同,而在框架外不能使用,其子类也不能使用,效果又相当于@private。它非常适用于franework框架。
一点扩展:
1.在类的实现@implementation中,可以声明成员变量【不提倡】,但这个成员变量默认情况下是@private的,如果强加@public,即使在main.m函数中访问该成员变量,编译器也会报错的。
2.在main.m函数中进行@implementation并声明成员变量,在成员变量前强加@pubilc,这时候,int main()主函数是可以访问该成员变量的。【不提倡这种做法】
1 @public
被这个关键字修饰的变量是完全开放的,只要有这类的对象存在,就可以访问到这个变量。
2 @protected
被这个关键字修饰的变量是受保护的,只有在声明变量的这个类中和它的子类中,可以访问。
3 @private
被这个关键字修饰的变量是私有的,只能在声明这个变量的类中使用,子类也不能使用。
4 @package
这个关键字比较难理解,大致意思是被修饰的变量是封装的,在本框架内可以自由使用,效果和@public 相同,而在框架外不能使用,其子类也不能使用,效果又相当于@private。它非常适用于franework框架。
一点扩展:
1.在类的实现@implementation中,可以声明成员变量【不提倡】,但这个成员变量默认情况下是@private的,如果强加@public,即使在main.m函数中访问该成员变量,编译器也会报错的。
2.在main.m函数中进行@implementation并声明成员变量,在成员变量前强加@pubilc,这时候,int main()主函数是可以访问该成员变量的。【不提倡这种做法】