2012-10-18 58 views
4

我得到了以下斷言失敗:斷言失敗 - [UITextFieldLabel setTextColor:]

斷言失敗 - [UITextFieldLabel setTextColor:],/SourceCache/UIKit_Sim/UIKit-1448.89/UILabel.m:314

在這條線

[self.window makeKeyAndVisible];

in appDidFinishLaunching method。

Unhandled exception: Debug info are 

    Invalid parameter not satisfying: color 
    (
"4 libc++abi.dylib      0x991331fe _Z19safe_handler_callerPFvvE + 15", 
"5 libc++abi.dylib      0x99133268 __cxa_bad_typeid + 0", 
"6 libc++abi.dylib      0x991342a0 _Z23__gxx_exception_cleanup19_Unwind_Reason_CodeP17_Unwind_Exception + 0", 
"7 libobjc.A.dylib      0x0167e416 __objc_personality_v0 + 0", 
"8 CoreFoundation      0x0182cef8 +[NSException raise:format:arguments:] + 136" 
) 

任何幫助,將不勝感激:)提前

感謝。

回答

4

我有同樣的問題,我終於找到了問題的原因。

當nil顏色作爲參數傳遞時,它看起來像[UILabel setTextColor:]在(僅!!)iOS 4.x上崩潰。我的應用程序在iOS 5和6上運行良好。

我正在使用IB創建的navigationBar,其中有一個UITextField(就像通常的BarButtonItem的子視圖一樣)。這個TextField有一個TextColor屬性留給它的默認值。對於放置在普通視圖上的TextField,這可以正常工作,但不適用於導航欄中的TextField。一旦我將TextColor更改爲其他任何內容(例如,深色文本顏色),都可以正常工作,並且不會導致任何進一步的崩潰。

很難追蹤這個問題,因爲它發生在應用程序啓動時,並且在加載所有NIB文件時調試代碼或異常斷點都不起作用。即使是崩潰日誌也沒有幫助,因爲它只是告訴你它在加載NIB文件時發生,但不會告訴你哪一個。就我而言,啓動時會加載相當多的視圖。我終於可以通過創建一個UILabel類的類別類別來追蹤這個問題,並且只是在此類別中添加了一個-(void)setTextColor:(UIColor *)color方法。在這種方法中,我能夠設置一個斷點,並發現只有一種情況下該參數爲零。此外,我添加了-(void)setText:(NSString *)text,並觀察了爲特定UILabel設置了哪些文本,其中顏色先前設置爲零。 text參數最終將我指向了navigationBar中的UITextField。

也許這有助於其他情況下,這種崩潰與UINavigationBar中的UITextField無關。

+0

你是否最終解決了這個問題?如何解決這個零UIcolor? –

+0

在我的情況下,問題是由UiTextField引起的,UiTextField沒有嵌入到任何UiNavigationBar或UIToolbar中。這只是xib中的一個簡單的UITextField。是的,我通過將文本顏色設置爲默認值以外的方式來解決問題。 –

+0

謝謝。有效! – NightFury