object-c学习笔记:属性变量(property)
2012-12-05 09:58
337 查看
摘要: 什么是property?是一种代码生成机制,能够生成不同类型的getter/setter函数,特别是如果你想要用点(.)操作符号来存取变量的话,你就能必须使用property。如何使用?用法是固定的,注意下property后面小括号了跟
...
...
什么是property? 是一种代码生成机制,能够生成不同类型的getter/setter函数,特别是如果你想要用点(.)操作符号来存取变量的话,你就能必须使用property。 如何使用? 用法是固定的,注意下property后面小括号了跟的参数列表,nonatomic代表非原子性,既不支持多线程的同步,mac上可以根据具体情况考虑,IPhone上就加上把,retain代表对setter的对象加上一个retain操作,同时也会release原有的object,copy顾名思义就是copy setter中参数的对象。看下面的例子: 代码 @interface Engine : NSObject { } @end @implementation Engine - (NSString*) description { return (@"engine"); } @end @interface Tier : NSObject { } @end @implementation Tier - (NSString*) description { return (@"tier"); } @end @interface Car : NSObject { int tier_num; float engine_power; NSString* name; Engine* engine; Tier* tier; } @property (nonatomic) int tier_num; @property (nonatomic) float engine_power; @property (nonatomic, copy) NSString* name; @property (nonatomic, retain) Engine* engine; @property (nonatomic, retain) Tier* tier; @end @implementation Car @synthesize tier_num; @synthesize engine_power; @synthesize name; @synthesize engine; @synthesize tier; - (id) init { if (self = [super init]) { tier_num = 4; engine_power = 100; name = @"BMW"; } return self; } @end int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; Car* car = [[Car alloc] init]; NSLog(@"number of tiers is %d\n", car.tier_num); NSLog(@"car's name is %a\n", car.name); car.name = @"Mazd"; Engine* newEngine = [[Engine alloc] init]; car.engine = newEngine; // insert code here... [pool drain]; return 0; } 额外的内容 默认的propety变量,总是可读写的,如果需要只读控制,就用readonly,这时编译器不会生成setter方法,如 @property (readonly) float something; 转载自:http://www.189works.com/article-10301-1.html |
相关文章推荐
- object-c学习笔记:属性变量(property)
- 【黑马程序员-学习笔记】OC-成员变量与属性
- WPF学习笔记8: 依赖属性(Dependency Property)
- AppleScript学习笔记1——变量和属性
- Silverlight:Dependency Property(依赖属性)学习笔记
- Effective C# 学习笔记(一) 用属性替代公有变量
- scala 学习笔记(03) 参数缺省值、不定个数参数、类的属性(Property)、泛型初步
- iOS学习笔记56(Runtime)-Objective-C Runtime 运行时之二:成员变量与属性
- C语言学习笔记4——变量属性
- vue源码学习之Object.defineProperty对象属性监听
- Object-C 学习笔记(四 )@property 属性标志的使用
- Vue.js 源码学习笔记 -- 分析前准备2 -- Object.defineProperty
- Silverlight:Dependency Property(依赖属性)学习笔记
- objective-C学习笔记(三)数据成员:属性与实例变量
- JMeter学习笔记--JMeter属性和变量
- 学习笔记之--属性、字段、变量
- 『iOS学习笔记』 - 变量 属性 方法 实现
- 学习笔记之--属性、字段、变量
- Object的属性property详细解释(自动生成成员变量)
- OC学习笔记-属性与成员变量的区别