【发布时间】:2015-06-19 15:42:10
【问题描述】:
我有以下代码:
UIFont * applicationBolFontOfSize26=[fontsSuperclass returnApplicationMainFontOfSize:26.0f];
[self.settingsButton setTitleTextAttributes:@{ NSFontAttributeName : applicationBolFontOfSize26 } forState:UIControlStateNormal];
其中字体超类方法定义为:
+(UIFont *)returnApplicationMainFontOfSize:(CGFloat)floatSize {
return [UIFont fontWithName:@"HelveticaNeue-Regular" size:floatSize];
}
但self.settingButton setTitleText... 崩溃并出现错误:
* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: 尝试从 objects[0] 插入 nil 对象”
为什么?
【问题讨论】:
-
好吧,有些东西是零...在将字体分配给按钮之前记录或断点。
-
是的,字体是 nil,这很奇怪。
-
没有复合语句也更容易调试,在中间变量中创建属性。然后检查每个项目是否为零。调试技能是编写软件的一部分。
-
我不应该分配初始化超类。
-
fontsSuperclass必须在某处创建,显示出来。