Abh*_*nav 4 iphone cocoa-touch objective-c nsdata property-list
在我的应用程序中,我试图序列化服务器响应字典并将其写入文件系统.但是我收到一些回复的错误"属性列表格式无效".原因是服务器响应中的CFNull对象.现在,服务器响应将继续改变,所以我没有明确的方法来删除CFNull对象().以下是我的代码:
NSString *anError = nil;
NSData *aData = [NSPropertyListSerialization dataFromPropertyList:iFile format:NSPropertyListXMLFormat_v1_0 errorDescription:&anError];
Run Code Online (Sandbox Code Playgroud)
解决这个问题的最佳方法是什么?如何一次性从服务器响应中删除所有CFNull对象?
我收到Facebook SDK的回复时遇到了这个问题,所以我实现了这个方法:
- (void)cleanDictionary:(NSMutableDictionary *)dictionary {
[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
if (obj == [NSNull null]) {
[dictionary setObject:@"" forKey:key];
} else if ([obj isKindOfClass:[NSDictionary class]]) {
[self cleanDictionary:obj];
}
}];
Run Code Online (Sandbox Code Playgroud)
}
这将走向字典的层次结构并将所有CFNulls转换为空字符串.
| 归档时间: |
|
| 查看次数: |
3643 次 |
| 最近记录: |