我得到了以下断言失败:
断言失败 - [UITextFieldLabel setTextColor:],/ SourceCache / UIKit_Sim / UIKit-1448.89 / UILabel.m:314
在这一行
[self.window makeKeyAndVisible];
在appDidFinishLaunching方法中。
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"
)
任何帮助将不胜感激:)
提前致谢。
答案 0 :(得分:4)
我有同样的问题,我终于找到了问题的原因。
当nil颜色作为参数传递时,看起来[UILabel setTextColor:]在(仅!)iOS 4.x上崩溃。我的应用在iOS 5和6上运行正常。
我正在使用一个使用IB创建的navigationBar,其中包含一个UITextField(通常是BarButtonItem的子视图)。此TextField的TextColor属性保留为默认值。对于放置在普通视图上的TextFields,这可以正常工作,但不适用于navigationBar中的TextField。一旦我将TextColor更改为其他任何内容(例如,深色文本颜色),工作正常并且不会导致任何进一步的崩溃。
很难跟踪此问题,因为它发生在App启动时以及加载所有NIB文件时,因此调试代码或异常断点不起作用。甚至崩溃日志都没有帮助,因为它只是告诉你它在加载NIB文件时发生但不告诉你哪一个。就我而言,启动时会加载很多视图。我终于通过创建UILabel类的类类别来跟踪问题,并且只为此类别添加了-(void )setTextColor:(UIColor *)color
方法。在这个方法中,我然后能够设置一个断点,发现只有一种情况下参数是nil。此外,我随后添加了-(void )setText:(NSString *)text
并观察了为此特定UILabel设置的文本,其中颜色先前未设置为nil。 text参数最终将我指向了navigationBar中的UITextField。
在其他情况下,这可能会有所帮助,因为此崩溃与UINavigationBar中的UITextField无关。