12

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

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 的设备上运行。

4

3 回答 3

10

听起来你的bariol对象是nil. 您不能存储nil在字典中。

编辑:

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

于 2013-02-26T22:34:44.040 回答
6

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

如果您更喜欢不那么严格的构造函数,则可以考虑+[NSDictionary dictionaryWithObjectsAndKeys:]改用。

于 2013-02-26T21:30:33.373 回答
5

这个错误似乎在其他地方。它指向对象“1”处的数组错误。在您的情况下,您有一本字典,而对象 '1'UITextAttributeTextColor: [UIColor whiteColor]永远不会为零。

于 2015-06-04T00:33:12.813 回答