有很多,其中一個將ALLOC一個實例,然後將其釋放它被分配到別的東西,它保留它在內部之後的案件。以後自動釋放或釋放是否更好?
例如,
UIView *view = [[UIView alloc] initWithFrame...]; [self addSubView:view]; [view release];
我聽到有人建議我們之後去自動釋放,而不是釋放。
所以上面就變成了:
UIView *view = [[[UIView alloc] initWithFrame...] autorelease]; [self addSubView:view];
這裏有什麼最好的做法是什麼?優點和缺點?
+1。 autorelease在性能方面受到很大的衝擊(flak我很少看到在正常的非大循環代碼中用數字備份),但autorelease在代碼重構時也可以節省大量的泄漏。我經常在低級例程中使用釋放,因爲我不知道它們是否可能在更高級別的大循環中調用。但是,如果你要使用release,那麼如果變量仍然在範圍內,你必須立即將該變量設置爲nil。永遠不要釋放一個對象,但仍然有一個指向它的指針。 – 2009-08-17 05:08:09