Dav*_*ave 2 iphone nsdictionary
我正在寻找创建一个"防崩溃"的NSDictionary,因为我使用的是一个将服务器响应转换为NSDictionary的JSON序列化程序.结果,有时字典的键不存在.目前,这会使应用程序崩溃,但我宁愿返回一个空的NSString,所以我可以在界面中显示它.
一个解决方案可能是我每次访问字典时检查密钥,例如
if([returnedDictionary objectForKey:@"key"]){
// Display [returnedDictionary objectForKey:@"key"];
}else{
// Display @"";
}
Run Code Online (Sandbox Code Playgroud)
然而,这很快就会产生臃肿,难以阅读的代码.
我曾考虑过创建一个自定义的NSDictionary对象,例如:
@interface NSSafeDictionary : NSDictionary .....
Run Code Online (Sandbox Code Playgroud)
用上面的语句覆盖objectForKey.
这是一种满意的方法吗?
谢谢
您是否总是想要从字典中获取字符串或将其他对象存储在其中?如果它只是字符串,我认为最简单的方法是在NSDictionary上构建一个类别.
@interface NSDictionary ( EmptyStrings )
- (NSString *)stringForKey:(id)aKey;
@end
@implementation NSDictionary ( EmptyStrings )
- (NSString *)stringForKey:(id)aKey {
id object = [self objectForKey:aKey];
if (object == nil ) {
return @"";
}
if ([object isKindOfClass:[NSString class]) {
return object;
} else {
return nil;
}
}
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1015 次 |
| 最近记录: |