首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iPhone NSMutableDictionary setObject forKey after initWithContentsOfFile

iPhone NSMutableDictionary setObject forKey after initWithContentsOfFile
EN

Stack Overflow用户
提问于 2011-01-01 23:38:07
回答 1查看 1K关注 0票数 0

下面是我的函数

代码语言:javascript
复制
+ (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函数替换/添加记录)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-01 23:51:28

首先,你应该尊重ObjC的命名约定,这样更容易理解……例如,方法名称以小写开头,最好在每个参数的冒号之前放一个描述性名称,方法名称如下:AddAddress::不是很好……

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

代码语言:javascript
复制
if(currentAddresses == nil) currentAddresses = [[NSMutableDictionary alloc] init];
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4574544

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档