gpt4 book ai didi

ios - NSUserDefaults setObject :nil vs. setNilValueForKey

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:57:52 24 4
gpt4 key购买 nike

每当我尝试以下行时,我的应用程序就会崩溃:

[[NSUserDefaults standardUserDefaults] setNilValueForKey:@"my_key"];

出现此错误:'NSInvalidArgumentException', reason: '[<NSUserDefaults 0x7a2423d0> setNilValueForKey]: could not set nil as the value for the key my_key.'

但是当我这样做时它似乎起作用了:

[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"my_key"];

有人可以解释这两个函数之间的区别吗?

最佳答案

setNilValueForKey:NSKeyValueCoding 协议(protocol)的一部分,不能直接调用,只是被具有自定义 NSKeyValueCoding 实现的类覆盖。然而,setObject:forKey:NSUserDefaults 提供的一种方法,当使用 nil 对象发送时,本质上是从默认值中删除 key (尽管这种行为在 Swift 中可能看起来不同).

关于ios - NSUserDefaults setObject :nil vs. setNilValueForKey,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27615834/

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