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