我是否必须保留/释放NSDictionary中的值?

时间:2011-08-24 06:58:38

标签: objective-c ios memory-management 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];

它更友好吗?或者我不应该费心去信任autorelease pool来完成它的工作?

1 个答案:

答案 0 :(得分:3)

不,这样做没有意义。 [notification.userInfo objectForKey:@"state"]的结果总是一个自动释放的对象;如果您添加额外的retainrelease,则不会更改任何内容。