當涉及到分配和初始化被聲明我見過的示例代碼的各個位,兩個主要圖案的一類@properties對象,因此給出下面的(由)報頭的代碼 -效益的間接分配和初始化一個聲明@property
@interface Class : Superclass {
Object *anObject;
}
@property (nonatomic, retain) Object *anObject;
第一,直接分配:
self.anObject = [[Object alloc] init];
第二,間接方法創建一個臨時對象,然後被分配給屬性和釋放:
Object *tempObject = [[Object alloc] init];
self.anObject = tempObject;
[tempObject release];
有什麼好處在第一第二的方法?
我真的很驚訝,人們正在認真地提出第一個直接分配方法。 – 2010-09-15 00:07:11
正如hotpaw1提到的,我確實有錯誤的第一個模式 - 我沒有看到任何使用@property setter方法,但我對self.anObject = [...]與anObject = [...]之間的區別模糊不清無論如何。但這是有道理的 - 我忘記了點語法影響保留計數。 – 2010-09-15 03:20:09