2015-06-19 26 views
0
的屬性詞典

我有以下代碼時:崩潰設定的UIBarButtonItem

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...崩潰:

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

爲什麼?

+1

好吧,有些東西是零...記錄或斷點您的字體,然後再將其分配給按鈕。 –

+0

是的字體是零,這很奇怪。 – louiskablooie

+1

在沒有複合語句的情況下調試也比較容易,在中間變量中創建屬性。然後檢查每個項目的零。調試技能是編寫軟件的一部分。 – zaph

回答

3

沒有字體命名爲「HelveticaNeue-Regular」,所以你的字體是nil。對於常規的Helvetica Neue字體使用[UIFont fontWithName:@"HelveticaNeue" size:floatSize]

+0

啊謝謝,我將如何指定Bold和Regular? – louiskablooie

+2

「HelveticaNeue-Bold」是大膽的。您可以通過記錄'[UIFont fontNamesForFamilyName:@「Helvetica Neue」]的值來查看它們的全部內容。' – dan