我注意到这种方法出现了一些意想不到的行为,并且想知道是否有人有任何见解。当我拨打removeObjectForKey
时,我注意到[setObject: obj ForKey: key]
实际上是在幕后调用的。我遇到了问题,因为我已为(setObject forKey
覆盖此方法NSUserDefaults
)。
removeObjectForKey
的文档说:
如果在搜索列表中标准应用程序域之前的域中存在相同的密钥,则删除默认值对
objectForKey:
方法返回的值没有影响。
应用程序域究竟是什么,这可能是调用setObject
的原因吗?我很困惑,因为我试图从NSUserDefaults
NSDictionary
中移除,而不是设置对象。
答案 0 :(得分:2)
我不会覆盖var str = '"' + arr.join('", "') + '"'; // "Red", "Blue", "Green"
的{{1}}。似乎是一个非常糟糕的主意。对于它的价值,setObject:forKey
可能被调用nil值来删除密钥。