【发布时间】:2011-08-19 17:33:51
【问题描述】:
假设我有一本字典,其中包含可能存在或不存在的键的对象。检查此密钥是否存在的标准做法是什么?
例如,我写的内容是这样的:
id temp;
temp = [dict objectForKey: @"id"];
if (temp != [NSNull null]) {
uid = [temp intValue];
}
temp = [dict objectForKey: @"name"];
if (temp) {
[name release];
name = [[NSString alloc] initWithString: temp];
}
temp = [dict objectForKey: @"latitude"];
if (temp != [NSNull null]) {
[latitude release];
latitude = [[NSNumber alloc] initWithDouble: [temp doubleValue]];
}
temp = [dict objectForKey: @"longitude"];
if (temp != [NSNull null]) {
[longitude release];
longitude = [[NSNumber alloc] initWithDouble: [temp doubleValue]];
}
我应该用自动释放池包围这段代码吗?每次将 temp 指向字典中的对象时是否必须释放,还是池会自动处理?有没有更好的方法来处理错误?
【问题讨论】:
-
我相信如果对象不在字典中,那么会返回nil,而不是NSNull对象。
标签: ios objective-c memory-management autorelease