Re: [問題] 請問Objective-C中property的問題
※ 引述《cheech (兩光勘吉)》之銘言:
→
08/13 04:47,
08/13 04:47
→
08/13 04:47,
08/13 04:47
@property(attributes) type name;
attributre:
readonly read only (只產生 getter)
readwrite 產生 getter 和 setter
assign 在 setter 中簡單替換新舊變數
retain 在 setter 中 retain 新變數, release 舊變數
copy 在 setter 中 copy 新變數, release 舊變數
對於後三個, 如果你有用 garbage collector 那前兩者無差
如果沒有, 那第一個適用於實體變數(如 int), 它的 setter method 如
- (void)setFoo:(int)bar
{
foo = bar;
}
第二個適用於 pointer, 長得類似
- (void)setFoo:(NSString *)bar
{
[bar retain];
[foo release];
foo = bar;
}
第三個只是把第二個的 retain 改成 copy
同樣是用在 pointer types, 但不是直接 retain 新變數, 而是把它 copy 一份
這通常是因為新變數可能是 mutable types, copy 可以讓它們變成 immutable
另一個可以用的 attribute 是 nonatomic 和, 用在多工程式上
如果不寫明預設會建立 atomic setter methods
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.72.123
推
08/13 09:10, , 1F
08/13 09:10, 1F
→
08/13 09:10, , 2F
08/13 09:10, 2F
→
08/13 09:42, , 3F
08/13 09:42, 3F
→
08/13 09:43, , 4F
08/13 09:43, 4F
※ 編輯: uranusjr 來自: 220.135.72.123 (08/13 23:50)
推
08/14 10:21, , 5F
08/14 10:21, 5F
→
08/14 10:21, , 6F
08/14 10:21, 6F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):