2
通常我做這樣的事情(見下文)中獲取價值,我需要:我必須保留/釋放從NSDictionary中取得的值嗎?
NSDictionary *state = [notification.userInfo objectForKey:@"state"];
[self.tabBarItem setBadgeValue:[state objectForKey:@"short"]];
但不值得做保留從NSDictionary中取值/釋放?類似這樣的:
NSDictionary *state = [[notification.userInfo objectForKey:@"state"] retain];
[self.tabBarItem setBadgeValue:[state objectForKey:@"short"]];
[state release];
是否更加記憶友好?或者我不應該打擾,只是相信自動釋放池來完成它的工作?
那麼它不會加速釋放'state'?爲什麼我想到這個 - 我看到一些文章告訴我們避免使用'autorelease'變量。如果可能的話,手動釋放它們。這就是爲什麼我想到它...... – NilColor
@NilColor是的,有時避免autoreleased變量可以提供速度增加(雖然通常不是很多)。但我的觀點是,在這種情況下你無法避免它,'-objectForKey:'將始終返回一個自動釋放對象。所以只是不要擔心:) – jtbandes