我正在尝试使用NSArray
不允许空值的 NSDictionaries 的 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 都是可变的。
这是怎么回事?有一个更好的方法吗?
编辑:将新版本移至单独的答案。