objective-c – NSDictionary dictionaryWithDictionary或-copy
发布时间:2020-12-16 03:11:56 所属栏目:百科 来源:网络整理
导读:这被认为是从原始词典中导出新词典的更好方法: [NSDictionary dictionaryWithDictionary:otherDictionary]; 要么 [otherDictionary copy]; ? 不时,我们需要将一个不可变的字典变成一个不可变的字典,所以这个问题不断进来,也许没有,但我很好奇,看看在某些用
这被认为是从原始词典中导出新词典的更好方法:
[NSDictionary dictionaryWithDictionary:otherDictionary]; 要么 [otherDictionary copy]; ? 不时,我们需要将一个不可变的字典变成一个不可变的字典,所以这个问题不断进来,也许没有,但我很好奇,看看在某些用例中,一个比另一个更好. 编辑:我知道上述方法不能用来派生一个可变字典.我只想以一般的方式提问,然后解释一下我今天面对这个问题.我应该更清楚这一点. 解决方法
其实他们是不同的,但不是因为你的期望.我会假设你正在使用ARC(如果你不是,为什么不这样),所以返回的对象的自动释放并不重要.
以下是它们的区别:考虑如果otherDictionary为零,会发生什么. 那么,如果你使用: [otherDictionary copy]; // or -mutableCopy 你会收回零,因为你有一个零接收器. 另一方面,如果你使用: [NS(Mutable)Dictionary dictionaryWithDictionary:otherDictionary]; 你会得到一个NS(Mutable)词典,而不管otherDictionary是否为零. 在这种情况下,您需要创建一个字典的副本并且之后需要一个NSDictionary实例,但是您不想测试nil(yay来减少循环复杂度!). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |