UIPickerView iOS7.1中未定义的键NSException

我在7.0版本中没有出现iOS 7.1模拟器中的exception。 它似乎在核心的某处处理,因为它只触发exception引发断点。 它不会login到控制台或崩溃。 这在滚动UIPickerView中的选项时发生。 没有有意义的回溯(从UIApplicationMain到objc_exception_throw),但是在debugging器中抛出时检查exception显示:

[<UIPickerView 0xb9a6700> valueForUndefinedKey:]: this class is not key value coding-compliant for the key _mode.

我在我的项目searchmodesetMode:mode =但我不认为我是一个设置这个。 其他人遇到这个? 我想如果没有崩溃的应用程序是好的,但它给了我一个恐慌,我宁愿采取行动,以防止它被抛出。 如果我有更多的时间,我会尝试在testing项目中进行隔离并跟进。

编辑:更好的回溯:

  thread #1: tid = 0x10975c, 0x02590909 libc++abi.dylib`__cxa_throw, queue = 'com.apple.main-thread, stop reason = breakpoint 1.2 frame #0: 0x02590909 libc++abi.dylib`__cxa_throw frame #1: 0x01b1d9fc libobjc.A.dylib`objc_exception_throw + 323 frame #2: 0x020e1fe1 CoreFoundation`-[NSException raise] + 17 frame #3: 0x017ddc7a Foundation`-[NSObject(NSKeyValueCoding) valueForUndefinedKey:] + 282 frame #4: 0x0174adfd Foundation`_NSGetUsingKeyValueGetter + 81 frame #5: 0x0174a437 Foundation`-[NSObject(NSKeyValueCoding) valueForKey:] + 260 frame #6: 0x0d615dff AccessibilityUtilities`-[NSObject(UIAccessibilitySafeCategory) safeValueForKey:] + 43 frame #7: 0x1151c1f6 UIKit`-[UIAccessibilityPickerComponent accessibilityTraits] + 398 frame #8: 0x0d716021 UIAccessibility`-[NSObject(AXPrivCategory) accessibilityAttributeValue:] + 1865 frame #9: 0x0d70a7d7 UIAccessibility`_copyMultipleAttributeValuesCallback + 409 frame #10: 0x0d76c537 AXRuntime`_AXXMIGCopyMultipleAttributeValues + 202 frame #11: 0x0d767e78 AXRuntime`_XCopyMultipleAttributeValues + 473 frame #12: 0x0d7726b4 AXRuntime`mshMIGPerform + 256 frame #13: 0x01fcdca5 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53 frame #14: 0x01fcd9db CoreFoundation`__CFRunLoopDoSource1 + 523 frame #15: 0x01ff868c CoreFoundation`__CFRunLoopRun + 2156 frame #16: 0x01ff79d3 CoreFoundation`CFRunLoopRunSpecific + 467 frame #17: 0x01ff77eb CoreFoundation`CFRunLoopRunInMode + 123 frame #18: 0x03fea5ee GraphicsServices`GSEventRunModal + 192 frame #19: 0x03fea42b GraphicsServices`GSEventRun + 104 frame #20: 0x007ddf9b UIKit`UIApplicationMain + 1225 frame #21: 0x0004863d [redacted]`main(argc=1, argv=0xbfffef50) + 141 at main.m:16 

在我的情况下,在Xcode 6.2和iOS 8.2上,只有模拟器崩溃(但可以安全地继续)。 由于_mode不在我们的代码中,所以假设存在模拟器错误或错误configuration可能是安全的。

现在,我正在使用UIPickerView中的一个类来摆脱烦恼:

 #import "UIPickerView+FixCrash.h" @implementation UIPickerView (FixCrash) #if TARGET_IPHONE_SIMULATOR - (id)valueForUndefinedKey:(NSString *)key { return nil; } #endif @end