iOS:“在创建字典时尝试从对象[1]中插入nil对象”

时间:2013-02-26 21:25:54

标签: objective-c objective-c-literals

我正在使用以下代码创建自定义导航栏类​​并自定义其标题属性:

self.titleTextAttributes = @{ UITextAttributeFont: bariol,
                              UITextAttributeTextColor: [UIColor whiteColor]
                            };

但是,当我运行代码时,它会返回以下错误消息:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[1]'

我正在使用Xcode 4.6并在使用iOS 6的设备上运行。

3 个答案:

答案 0 :(得分:9)

听起来您的bariol对象是nil。您无法将nil存储在字典中。

修改

实际上,你确定这是正确的代码行吗?您的错误引用了NSPlaceholderArray,这表明它是@[]字面值的问题,而不是@{}字面值。

答案 1 :(得分:6)

文字的参数(字典的值和键)不能是nil

如果您更喜欢不太严格的构造函数,可以考虑使用+[NSDictionary dictionaryWithObjectsAndKeys:]代替。

答案 2 :(得分:3)

此错误似乎在其他地方。它指向对象' 1处的数组错误。在你的情况下,你有一个字典和对象' 1'是UITextAttributeTextColor: [UIColor whiteColor],永远不会是零。