我是新来的发展并不能想出解决办法:为什么不是这个代码泄漏?
for(NSString *collectionName in jsonObjects)
{
NSDictionary *collection = [[NSDictionary alloc] init];
collection = [jsonObjects valueForKey:collectionName];
NSArray *items = [[NSArray alloc] initWithArray:[collection valueForKey:@"items"]];
NSNumber *lastAccess = [[NSNumber alloc] init];
lastAccess = [collection valueForKey:@"lastAccess"];
[items release];
}
我不明白为什么要这样,当我DO版本要么LASTACCESS或收集,程序崩溃与EXC_BAD_ACCESS错误...,但如果我不发布项目我得到一个泄漏。任何人都可以请澄清这一点。我认为如果你使用了alloc,那么你拥有这个参考,因此必须发布?
谢谢Harald,我看了内存管理指南,但误解我猜:(我尽管你知道你在说什么改写我的初始alloc/init,但是我确实有一个关于NSDictionary * collection = [jsonObjects valueForKey:collectionName];和NSDictionary * collection = [NSDictionary dictionaryWithDictionary:[jsonObjects valueForKey :collectionName]];即这两个声明在功能上是否相同,文档没有说清楚? – Beliskna 2010-12-05 18:32:48