【发布时间】:2012-11-17 09:03:19
【问题描述】:
我正在尝试使用不允许空值的 NSDictionaries 的 NSArray 的 writeToFile 方法。我想只是循环并找到它们并用空的NSString 替换,但我无法让它工作。这就是我正在尝试的。
编辑:NSArrays 和 NSDictionaries 由 NSJSONSerialization 创建。
for (NSMutableDictionary *mainDict in mainArray)
{
for(NSMutableDictionary *subDict in mainDict)
{
for(NSString *key in subDict)
{
id value = [subDict objectForKey:key];
if (value == [NSNull null])
{
[subDict setObject:@"" forKey:key];
}
}
}
}
但这会引发异常。 *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFDictionary setObject:forKey:]: mutating method sent to immutable object'
但正如您所见,所有 NSDictionaries 都是可变的。
怎么了? 有没有更好的方法来做到这一点?
编辑:将新版本移至单独的答案。
【问题讨论】:
标签: objective-c nsdictionary nsnull