gpt4 book ai didi

objective-c - NSDictionary +dictionaryWithDictionary 还是-copy?

转载 作者:太空狗 更新时间:2023-10-30 03:22:36 27 4
gpt4 key购买 nike

哪个被认为是从原始字典派生新字典的更好方法:

[NSDictionary dictionaryWithDictionary:otherDictionary];

[otherDictionary copy];

?

有时我们需要从不可变的字典中创建一个可变的字典,所以这个问题不断出现。也许没有,但我很好奇在某些用例中是否一个比其他。

编辑:我知道上述方法不能用于派生可变 字典。我只是想笼统地问这个问题,然后解释一下我是如何每天面对这个问题的。我应该更清楚这一点。

最佳答案

实际上,它们不同的,但不是出于您期望的原因。我假设您正在使用 ARC(如果您没有,为什么不呢?),因此返回对象的自动释放性并不重要。

以下是它们的不同之处:考虑如果 otherDictionarynil 会发生什么。

好吧,如果你使用:

[otherDictionary copy]; // or -mutableCopy

你会得到 nil,因为你有一个 nil 接收器。

另一方面,如果您使用:

[NS(Mutable)Dictionary dictionaryWithDictionary:otherDictionary];

得到一个NS(Mutable)Dictionary,不管otherDictionary是否为nil .

这在您需要创建一个字典的副本并且之后想要一个NSDictionary实例的情况下很好,但是您不想测试nil(减少圈复杂度!)。

关于objective-c - NSDictionary +dictionaryWithDictionary 还是-copy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17076974/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com