iOS开发Objective-C 语言变量的作用域
2015-09-06 16:21
543 查看
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()主函数是可以访问该成员变量的。【不提倡这种做法】
相关文章推荐
- Objective-C Block一步一步分析
- 《A Fragment-Based Approach to Object Representation and Classifiacation》阅读翻译
- Android属性动画完全解析(中),ValueAnimator和ObjectAnimator的高级用法
- Effective Java 英文 第二版 读书笔记 Item 5:Avoid creating unnecessary objects.
- Objective-C Runtime 运行时:成员变量(ivars)及属性
- 常见问题总结篇二、 对Autolayout VFL(Visual Format Language) 的扩展
- openstack kilo compute更新后报错IncompatibleObjectVersion: Version 1.2 of PciDeviceList is not supported
- java 中 List<Object []>的用法
- java基础类:Object类和Math类
- Objective-C 之NSString及常用方法
- json教程系列(3)-JSONObject的过滤设置
- json教程系列(2)-生成JSONObject的方法
- iOS7之后JavaScript与Objective-C之间的通信
- dop object 中的属性运用
- OC基础教程1-Hello Wrold(OS X版)
- JSONObject与JSONArray的使用
- Objective-C 面向对象(类II)
- error: allocating an object of abstract class type
- Effective Objective-C 2.0 第5条:用枚举表示状态、选项、状态码
- Objective-C 内存管理