NSDictionary - 避免nils

sum*_*HAY 1 iphone cocoa-touch objective-c nsdictionary ios

我在视图控制器中有很多文本字段(大约20个).在用户填写文本字段(有些可能为空)之后,我创建了ab NSDictionary并将其发送到我的数据中心类.我创建的NSDictionary看起来像这样:

textfield1 -> textfield1_value
textfield2 -> textfield2_value
textfield3 -> textfield3_value
textfield4 -> textfield4_value
Run Code Online (Sandbox Code Playgroud)

问题是,只要用户将字段留空,就会将nill置于值中.这会导致NSDictionary突然/过早地初始化(如果那是正确的词).我在这里唯一的选择是检查每个20个文本字段是否为零?我觉得必须有更好的方法.谢谢.

对此感到抱歉.我正在初始化NSDictionary,如下所示:

[NSDictionary dictionaryWithObjectAndKeys: obj1, key1, obj2, key2, ..., nil];
Run Code Online (Sandbox Code Playgroud)

Emp*_*ack 5

如果使用setObject:forKey:方法,则应注意不要将nil作为值传递,这将引发NSInvalidArgumentException.

如果使用setValue:forKey:方法,则将nil设置为值实际上会从字典中删除密钥,从而节省内存.在您根本不需要它的情况下,此方法对于从字典中删除密钥(实际上是内存)非常有帮助.如果使用此方法,则无需在文本字段中检查nil,这也可以节省一些时间.