所以这是我的功能
+ (void) AddAddress:(NSString*)ip:(NSString*)mac {
NSMutableDictionary* currentAddresses = [[NSMutableDictionary alloc] initWithContentsOfFile:[self filePath:ADDRESSES_FILE]];
[currentAddresses setObject:mac forKey:ip];
[Configuration Write:currentAddresses];
[currentAddresses release];
}
[self filePath:ADDRESSES_FILE]返回一个字符串,其中包含位于Documents中的文件的完整路径(ADDRESSES_FILE)。该文件可能不存在,在这种情况下,我只想将一个对象写入字典,然后将其写下来
问题是,当我执行setObject forKey时,它不会向dict添加任何内容(如果我只是将div分配给dict,它工作正常,但我想从文件中读取记录,如果有的话any,并使用AddAddress函数替换/添加记录)
答案 0 :(得分:2)
首先,您更愿意更容易理解ObjC的命名约定...例如,方法名称以小案例开头,最好在每个参数的冒号之前放置一个描述性名称,这样的方法名称:AddAddress::
不是很好......
现在,关于从文件加载字典,问题是如果文件无法加载(不存在,格式错误,......),返回的对象将为nil,最简单的方法是这是正确的:
if(currentAddresses == nil) currentAddresses = [[NSMutableDictionary alloc] init];