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

问题描述 投票:2回答:3

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

我希望我的字典不会崩溃,即使它通过下标分配为nil。

EG

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
dict[@"test"] = nil; //won't crash here
objective-c cocoa nsmutabledictionary
3个回答
3
投票

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


1
投票

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

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

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


0
投票

你不能在Objective-C中做到这一点。但是,您发布的代码不会崩溃。

© www.soinside.com 2019 - 2024. All rights reserved.