我是否必须保留/释放从NSDictionary中获取的值



通常我会这样做(如下)来获取我需要的值:

NSDictionary *state = [notification.userInfo objectForKey:@"state"];
[self.tabBarItem setBadgeValue:[state objectForKey:@"short"]];

但是值得为从NSDictionary中获取的值做retain/release吗?像这样:

NSDictionary *state = [[notification.userInfo objectForKey:@"state"] retain];
[self.tabBarItem setBadgeValue:[state objectForKey:@"short"]];
[state release];

是否更内存友好?或者我不应该麻烦,只是相信自动释放池来完成它的工作?

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

最新更新