object-c定义属性与成员变量的区别
2015-11-23 00:03
393 查看
object-c定义属性与成员变量的区别:
1、关于@synthesize object = _object: 我们经常这样写:
@interface Class:NSObject{ NSString *_name; } @property(nonamtic, copy) NSString *name; @end @implementatin Class @synthesize name=_name;
像这样的写法最关键的是避免一些错误 我们都知道,关键词@property和@implementatin是为成员变量自动实现getter和setter方法,例如上面代码 如果写@synthesize name=_name时getter方法为:
-(NSString *)name { return _name; }
如果写@synthesize name时getter方法为:
-(NSString *)name { return name; }
这样就使得函数名和属性名重名,会出现意想不到的错误,所以为了避免这种Bug,我们多数采用第一种方式。 2、属性是用self.object,通过getter方法来调用的,可以在类外使用。而变量是通过指针_object来调用,只能在该类对应的implementation中使用,在类外不能使用。 3、对于retain修饰的属性,属性可以起到内存管理功能。 ——by 韩笑
相关文章推荐
- g++编写与使用动态链接库so(shared object)(附cmake生成动态库)
- [ES6] Converting an array-like object into an Array with Array.from()
- javaScript与Objective-C交互
- 增强现实(AR)笔记4:ObjectRecognition实操
- Java中的Object类
- Understanding Runtime
- Objective-C Runtime 运行时之五:协议与分类
- Objective-C Runtime 运行时之四:Method Swizzling
- UiObject2介绍
- HowTo Perform the spatial selection 'Share a line segment with' using ArcObjects
- iOS 7应用开发公开课笔记 L3:Objective-C
- android 中Jsonobject里的键值是动态时,获得键值key
- Objective-C Block的实现
- Objective-C学习-NSSet(集合),NSMutableSet(可变集合) NSCountSet(计数集合)
- Objective-C:神在细节之中
- Objective-C Associated Objects 的实现原理
- Objective-C 的动态提示和技巧
- Core Data浅谈系列之三 : 了解NSManagedObject和NSPredicate(附Demo)
- 问题1 String类和Object类中的equals方法比较
- 【转载】Animation 动画(三)ObjectAnimator、valueAnimator