我可能已經跳進了Objective-C的有點太快了,並認爲我知道足夠的內存管理潛水的。原來我不是。如何設置屬性值在Objective-C的正確方法
快進一點,我趕上了......大部分。我最後剩下的問題之一是@ property/@綜合過程並正確設置這些值。
我經常看到這樣的:
SomeObject *obj = [[SomeObject alloc] init];
self.obj = obj;
[obj release];
這是有道理的,但我不知道這實現了類似的事情足以成爲一種替代方案:
self.obj = [[[SomeObject alloc] init] autorelease];
請問這是可以接受的任何地方,你可能會設置值爲@property
,obj
?或者是直接訪問實例變量優先於init
方法中的那兩個?
obj = [[SomeObject alloc] init];
謝謝。
編輯:絕對相關question討論我的一半問題。我的問題的autorelease
部分被引用在其中一個答案中,但尚未得到確認。
所以我的問題依然存在:
- 是
autorelease
在這種情況下,一個有效的替代? autorelease
可以用這種方式在init
方法中使用,還是應該直接在init
方法中設置實例變量?
密切相關的,可能重複:http://stackoverflow.com/questions/7842641/best-way-to-set-a-retained-property-to-a-newly-created-object – 2011-12-13 22:27:13