下面是我的函数
+ (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返回一个字符串,其中包含文档中文件(ADDRESSES_FILE)的完整路径。该文件可能不存在,在这种情况下,我只想将一个对象写入字典,然后再将其写下来
问题是,当我执行setObject forKey时,它不会向字典中添加任何东西(如果我只是对字典执行分配初始化,它可以正常工作,但我希望从文件中读取记录(如果有),并使用AddAddress函数替换/添加记录)。
发布于 2011-01-01 23:51:28
首先,你应该尊重ObjC的命名约定,这样更容易理解……例如,方法名称以小写开头,最好在每个参数的冒号之前放一个描述性名称,方法名称如下:AddAddress::不是很好……
现在,关于从文件加载字典,问题是如果文件无法加载(不存在,格式错误,...),则返回的对象将为nil,最简单的纠正方法是放入:
if(currentAddresses == nil) currentAddresses = [[NSMutableDictionary alloc] init];https://stackoverflow.com/questions/4574544
复制相似问题