如何创建一个NSMutableDictionary,在分配nil时不会崩溃?

时间:2014-05-07 06:27:42

标签: objective-c cocoa nsmutabledictionary

有没有办法创建一个NSMutableDictionary类别,在分配nil值时不会崩溃?有一个objectForKeyedSubscript方法,我们可以覆盖它来获取值,但我找不到setter版本。

我希望我的字典不会崩溃,即使它被指定为nil到下标。

e.g。

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[@"test"] = nil; //won't crash here

3 个答案:

答案 0 :(得分:3)

我不知道你的用例是什么,但如果你只是想为一个键分配一个空值你有没看过NSNull?如果您将字典中的键分配给[NSNull null],它将为您提供零值的大部分好处。

答案 1 :(得分:1)

您可以使用' setValue:forKey:'在字典中设置任何值(包括nil)

  

- (void)setValue:(id)value forKey:(NSString *)key

     

将一个给定的键值对添加到字典中。    注意,当使用键值编码时,键   必须是一个字符串(请参阅“键值编码基础”)。讨论   此方法使用添加值和键到字典   setObject:forKey:,除非value为nil,在这种情况下该方法   而是尝试使用removeObjectForKey删除键:。

答案 2 :(得分:0)

您无法在Objective-C中执行此操作。但是,您发布的代码不会崩溃。