Objective-C 屬性參數
屬性參數有以下三種Writability、Setter、Semantics Atomicity
Writability
These attributes specify whether or not a property has an associated set accessor. They are mutually exclusive.
readwrite Indicates that the property should be treated as read/write. This attribute is the default.Setter Semantics
readonly If you use the
@synthesize
directive in the implementation block, only the getter method is synthesized. Moreover, if you attempt to assign a value using the dot syntax, you get a compiler error.Setter Semantics
These attributes specify the semantics of a set accessor. They are mutually exclusive.strong
weak
copy
Specifies that a copy of the object should be used for assignment.The previous value is sent a release
message.The copy is made by invoking the copy
method. This attribute is valid only for object types, which must implement the NSCopying
protocol.
指定應該使用對象的副本(深度復制),前一個值發送一條release消息。基本上像retain,但是沒有增加引用計數,是分配一塊新的內
存來放置它。
assgin Specifies that the setter uses simple assignment. This attribute is the default. You use this attribute for scalar types such as NSInteger
and CGRect
.
setter方法直接賦值,而不進行retain操作,比如NSInteger和CGRect,它們不是對象,所以不用release。
retain Specifies that retain
should be invoked on the object upon assignment.The previous value is sent a release
message.
setter方法對參數進行release舊值,再retain新值 例如: 1.-(void) setObj:(ClassX*) value
2.{
3. if (obj != value)
4. {
5. [obj release];
6. obj = [value retain];
7. }
8.}
Atomicity
You can use this attribute to specify that accessor methods are not atomic. (There is no keyword to denote atomic.)nonatomic Specifies that accessors are nonatomic. By default, accessors are atomic.
weak
copy
Specifies that a copy of the object should be used for assignment.The previous value is sent a release
message.The copy is made by invoking the copy
method. This attribute is valid only for object types, which must implement the NSCopying
protocol. 指定應該使用對象的副本(深度復制),前一個值發送一條release消息。基本上像retain,但是沒有增加引用計數,是分配一塊新的內
存來放置它。
存來放置它。
NSInteger
and CGRect
. setter方法直接賦值,而不進行retain操作,比如NSInteger和CGRect,它們不是對象,所以不用release。
retain Specifies that retain
should be invoked on the object upon assignment.The previous value is sent a release
message. setter方法對參數進行release舊值,再retain新值 例如:
1.-(void) setObj:(ClassX*) value
2.{
3. if (obj != value)
4. {
5. [obj release];
6. obj = [value retain];
7. }
8.}
2.{
3. if (obj != value)
4. {
5. [obj release];
6. obj = [value retain];
7. }
8.}
Atomicity
You can use this attribute to specify that accessor methods are not atomic. (There is no keyword to denote atomic.)nonatomic Specifies that accessors are nonatomic. By default, accessors are atomic.
posted on 2012-02-04 23:09 Wangkeke 閱讀(872) 評論(0) 編輯 收藏 引用 所屬分類: IOS