我正在将我的 xcode 项目转换为现代目标 c。在我的 AppDelegate 中,以前,我有以下代码:
- (void)customizeAppearance
{
[[UIBarButtonItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:barButtonFont, UITextAttributeFont, nil] forState:UIControlStateNormal];
}
接下来,使用 @{keys : value} 创建 NSDictionary 的文字方式,我将其更改为:
[[UIBarButtonItem appearance] setTitleTextAttributes:@{UITextAttributeFont: barButtonFont} forState:UIControlStateNormal];
这一更改使我的系统崩溃。错误输出为:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: 尝试从对象 [0] 插入 nil 对象”
有谁知道为什么以及我能做些什么来解决它?
我可以忽略它,但后来它会咬我,因为我会忘记。我确实想将我的整个项目更改为现代目标 c,并且将来不必记住为什么一个代码不是“现代”的。
谢谢。