Nerver use NSNumber as keys in Dictionary when Serialize
作者:ani di
版权所有,转载请注明出处blog.csdn.net/ani_di
如果你的NSDictionary中有包含NSNumber的Key,那么在序列化此字典时你会莫名其妙的失败。像这样
- NSMutableDictionary* dic = [NSMutableDictionary dictionaryWithCapacity:10];
- [dic setObject:@"test" forKey:[NSNumber numberWithLongLong:1]];
- if ([dic writeToFile:@"/tmp/1.xml" atomically:NO] == NO)
- {
- puts("Oops.");
- }
网络上已经有很多人在这里栽过跟头了。这个也不能怪苹果,因为在文档中已经说得很清楚了Property List Programming Guide
...although NSDictionary and CFDictionary objects allow their keys to be objects of any type, if the keys are not string objects, the collections are not property-list objects.
plist格式就是这么死,只有key是string才是合法的。大家不能把NSDictionay和Property list混为一谈,尽管它们之间的转换非常简单。