我在视图控制器中有很多文本字段(大约20个)。在用户填写文本字段(有些可能为空)之后,我创建了ab NSDictionary并将其发送到我的数据中心类。我创建的NSDictionary看起来像这样:
textfield1 -> textfield1_value
textfield2 -> textfield2_value
textfield3 -> textfield3_value
textfield4 -> textfield4_value
问题是,只要用户将字段留空,就会将nill置于值中。这会导致NSDictionary突然/过早地初始化(如果那是正确的词)。我在这里唯一的选择是检查每个20个文本字段是否为零?我觉得必须有更好的方法。感谢。
对此感到抱歉。我正在初始化NSDictionary:
[NSDictionary dictionaryWithObjectAndKeys: obj1, key1, obj2, key2, ..., nil];
答案 0 :(得分:5)
如果使用 setObject:forKey:方法,则应注意不要将 nil 作为值传递,这会引发 NSInvalidArgumentException
如果使用 setValue:forKey:方法,则设置 nil ,因为该值实际上会从字典中删除密钥,从而节省内存。在您根本不需要它的情况下,此方法对于从字典中删除密钥(实际上是内存)非常有帮助。如果你使用这种方法,你不必在文本字段中检查nil,这也节省了一些时间。
答案 1 :(得分:2)
为了将nil
存储在NSMutableDictionary
中,您应该使用[NSNull null]
进行换行,因为无法将nil
置于其中。
检查文本字段是否为空的方式实际上取决于您的代码,但如果您打算将此类值存储在中,则必须检查nil
。