0
我在蘋果文檔中閱讀了有關copyWithZone的內容:「返回的對象由發件人隱式保留,負責釋放它」。 但是...我怎麼能釋放我回來的東西......我要瘋了!iPhone:copyWithZone:在返回之前釋放一個對象?
示例代碼:
- (id)copyWithZone:(NSZone *)zone {
MyObject* obj = [[[self class] allocWithZone:zone] init]; // explicit retain
[obj fillTheObj];
return obj; // implicit retain
}
凡應該是告訴釋放? 我保留兩次?呃...
Okkkk,呼叫的發件人,而不是對象的發件人。這更清楚。但我真的很瘋狂。所以...我可以通過myObject.var = [localvar copy]將myObject中的屬性定義爲retain,並在dealloc中發佈。那會很好,不是嗎? – Oliver 2011-01-08 01:42:39