當看到有關Objective-C的性能,我一直被告知要制定者(或讓屬性機制使制定者)是這樣的:垃圾收集和屬性setter保留/釋放
- (void)setMyProperty:(MyClass *)newValue
{
[newValue retain];
[ivInstanceVariable release];
ivInstanceVariable = newValue;
}
// or
- (void)setMyProperty:(MyClass *)newValue
{
[ivInstanceVariable autorelease];
ivInstanceVariable = [newValue retain];
}
我不沒有得到它。我知道retain
遞增對象計數器和release
減一垃圾收集,但如何能更簡單:
- (void)setMyProperty:(MyClass *)newValue
{
ivInstanceVariable = newValue;
}
導致內存泄漏?謝謝。
如果你正在建設有垃圾收集您的應用程序啓用,既'-retain'和'-release'沒有操作。 – 2011-05-03 05:32:36