在initWithContentsOfFile之后的iPhone NSMutableDictionary setObject forKey

时间:2011-01-01 15:38:07

标签: iphone objective-c nsmutabledictionary

所以这是我的功能

+ (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函数替换/添加记录)

1 个答案:

答案 0 :(得分:2)

首先,您更愿意更容易理解ObjC的命名约定...例如,方法名称以小案例开头,最好在每个参数的冒号之前放置一个描述性名称,这样的方法名称:AddAddress::不是很好......

现在,关于从文件加载字典,问题是如果文件无法加载(不存在,格式错误,......),返回的对象将为nil,最简单的方法是这是正确的:

if(currentAddresses == nil) currentAddresses = [[NSMutableDictionary alloc] init];