UISearchBar in a UIViewController crashing

£可爱£侵袭症+ 提交于 2019-12-25 08:52:34

问题


I am having a weird crash when using UISearchBar. I have a view controller on a storyboard and everything works fine but as soon as a drag a UISearchBar in the view controller and then run the app, I get the following crash:

* thread #1: tid = 0x6d83b, 0x0462169e libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
    frame #0: 0x0462169e libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x045ef2c5 libsystem_pthread.dylib`pthread_kill + 101
    frame #2: 0x043609c9 libsystem_sim_c.dylib`abort + 127
    frame #4: 0x03a1c35d CoreFoundation`__handleUncaughtException + 749
    frame #5: 0x0370bb8b libobjc.A.dylib`_objc_terminate() + 100
    frame #6: 0x03ee5f60 libc++abi.dylib`std::__terminate(void (*)()) + 14
    frame #7: 0x03ee597d libc++abi.dylib`__cxa_throw + 116
    frame #8: 0x0370b9fc libobjc.A.dylib`objc_exception_throw + 323
    frame #9: 0x03a29243 CoreFoundation`-[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    frame #10: 0x0397c50b CoreFoundation`___forwarding___ + 1019
    frame #11: 0x0397c0ee CoreFoundation`__forwarding_prep_0___ + 14
    frame #12: 0x01fd0ba4 UIKit`-[UISearchBar(UISearchBarStatic) _updateMagnifyingGlassView] + 486
    frame #13: 0x01fd0cdb UIKit`-[UISearchBar(UISearchBarStatic) _setupSearchField] + 210
    frame #14: 0x01fc6af6 UIKit`-[UISearchBar initWithCoder:] + 1500
    frame #15: 0x0210bd6d UIKit`UINibDecoderDecodeObjectForValue + 704
    frame #16: 0x0210bf6e UIKit`UINibDecoderDecodeObjectForValue + 1217
    frame #17: 0x0210baa1 UIKit`-[UINibDecoder decodeObjectForKey:] + 114
    frame #18: 0x01d43fa4 UIKit`-[UIView initWithCoder:] + 842
    frame #19: 0x0210bd6d UIKit`UINibDecoderDecodeObjectForValue + 704
    frame #20: 0x0210baa1 UIKit`-[UINibDecoder decodeObjectForKey:] + 114
    frame #21: 0x01fa67a7 UIKit`-[UIRuntimeConnection initWithCoder:] + 191
    frame #22: 0x0210bd6d UIKit`UINibDecoderDecodeObjectForValue + 704
    frame #23: 0x0210bf6e UIKit`UINibDecoderDecodeObjectForValue + 1217
    frame #24: 0x0210baa1 UIKit`-[UINibDecoder decodeObjectForKey:] + 114
    frame #25: 0x01fa5c21 UIKit`-[UINib instantiateWithOwner:options:] + 1117
    frame #26: 0x01e0e6f5 UIKit`-[UIViewController _loadViewFromNibNamed:bundle:] + 280
    frame #27: 0x01e0ee9d UIKit`-[UIViewController loadView] + 302
    frame #28: 0x01e0f0d3 UIKit`-[UIViewController loadViewIfRequired] + 78
    frame #29: 0x01e0f5d9 UIKit`-[UIViewController view] + 35
    frame #30: 0x01e29942 UIKit`-[UINavigationController _startCustomTransition:] + 778
    frame #31: 0x01e368f7 UIKit`-[UINavigationController _startDeferredTransitionIfNeeded:] + 688
    frame #32: 0x01e374e9 UIKit`-[UINavigationController __viewWillLayoutSubviews] + 57
    frame #33: 0x01f780d1 UIKit`-[UILayoutContainerView layoutSubviews] + 213
    frame #34: 0x01d5f964 UIKit`-[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 355
    frame #35: 0x0371d82b libobjc.A.dylib`-[NSObject performSelector:withObject:] + 70
    frame #36: 0x0068345a QuartzCore`-[CALayer layoutSublayers] + 148
    frame #37: 0x00677244 QuartzCore`CA::Layer::layout_if_needed(CA::Transaction*) + 380
    frame #38: 0x006770b0 QuartzCore`CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 26
    frame #39: 0x005dd7fa QuartzCore`CA::Context::commit_transaction(CA::Transaction*) + 294
    frame #40: 0x005deb85 QuartzCore`CA::Transaction::commit() + 393
    frame #41: 0x005df258 QuartzCore`CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 92
    frame #42: 0x0395436e CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 30
    frame #43: 0x039542bf CoreFoundation`__CFRunLoopDoObservers + 399
    frame #44: 0x03932254 CoreFoundation`__CFRunLoopRun + 1076
    frame #45: 0x039319d3 CoreFoundation`CFRunLoopRunSpecific + 467
    frame #46: 0x039317eb CoreFoundation`CFRunLoopRunInMode + 123
    frame #47: 0x048dd5ee GraphicsServices`GSEventRunModal + 192
    frame #48: 0x048dd42b GraphicsServices`GSEventRun + 104
    frame #49: 0x01cf0f9b UIKit`UIApplicationMain + 1225
  * frame #50: 0x00008f2d `main(argc=1, argv=0xbfffed90) + 141 at main.m:16

I have no idea whats happening here. All I did was dragged a UISearchBar in the main view a view controller in the storyboard. every thing works fine without the search bar but when i add the search bar and run the app. I get this crash when i got to the view controller. and the strange thing is that the control does not even go to the viewDidLoad of the view controller. Anybody else faced this issue before? What should I do?

UPDATE

A proper crash trace:

2014-08-09 10:07:39.518 MyWorkflowww[20945:607] -[UIView setImage:]: unrecognized selector sent to instance 0xcf04830
2014-08-09 10:07:39.522 MyWorkflowww[20945:607] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView setImage:]: unrecognized selector sent to instance 0xcf04830'
*** First throw call stack:
(
    0   CoreFoundation                      0x039891e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x037088e5 objc_exception_throw + 44
    2   CoreFoundation                      0x03a26243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
    3   CoreFoundation                      0x0397950b ___forwarding___ + 1019
    4   CoreFoundation                      0x039790ee _CF_forwarding_prep_0 + 14
    5   UIKit                               0x01fcdba4 -[UISearchBar(UISearchBarStatic) _updateMagnifyingGlassView] + 486
    6   UIKit                               0x01fcdcdb -[UISearchBar(UISearchBarStatic) _setupSearchField] + 210
    7   UIKit                               0x01fc3af6 -[UISearchBar initWithCoder:] + 1500
    8   UIKit                               0x02108d6d UINibDecoderDecodeObjectForValue + 704
    9   UIKit                               0x02108f6e UINibDecoderDecodeObjectForValue + 1217
    10  UIKit                               0x02108aa1 -[UINibDecoder decodeObjectForKey:] + 114
    11  UIKit                               0x01d40fa4 -[UIView initWithCoder:] + 842
    12  UIKit                               0x02108d6d UINibDecoderDecodeObjectForValue + 704
    13  UIKit                               0x02108aa1 -[UINibDecoder decodeObjectForKey:] + 114
    14  UIKit                               0x01fa37a7 -[UIRuntimeConnection initWithCoder:] + 191
    15  UIKit                               0x02108d6d UINibDecoderDecodeObjectForValue + 704
    16  UIKit                               0x02108f6e UINibDecoderDecodeObjectForValue + 1217
    17  UIKit                               0x02108aa1 -[UINibDecoder decodeObjectForKey:] + 114
    18  UIKit                               0x01fa2c21 -[UINib instantiateWithOwner:options:] + 1117
    19  UIKit                               0x01e0b6f5 -[UIViewController _loadViewFromNibNamed:bundle:] + 280
    20  UIKit                               0x01e0be9d -[UIViewController loadView] + 302
    21  UIKit                               0x01e0c0d3 -[UIViewController loadViewIfRequired] + 78
    22  UIKit                               0x01e0c5d9 -[UIViewController view] + 35
    23  UIKit                               0x01d2c267 -[UIWindow addRootViewControllerViewIfPossible] + 66
    24  UIKit                               0x01d2c5ef -[UIWindow _setHidden:forced:] + 312
    25  UIKit                               0x01d2c86b -[UIWindow _orderFrontWithoutMakingKey] + 49
    26  UIKit                               0x01d373c8 -[UIWindow makeKeyAndVisible] + 65
    27  MyWorkflowww                        0x000091c2 -[MyAppDelegate application:didFinishLaunchingWithOptions:] + 610
    28  UIKit                               0x01ce714f -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309
    29  UIKit                               0x01ce7aa1 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1810
    30  UIKit                               0x01cec667 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
    31  UIKit                               0x01d00f92 -[UIApplication handleEvent:withNewEvent:] + 3517
    32  UIKit                               0x01d01555 -[UIApplication sendEvent:] + 85
    33  UIKit                               0x01cee250 _UIApplicationHandleEvent + 683
    34  GraphicsServices                    0x048dbf02 _PurpleEventCallback + 776
    35  GraphicsServices                    0x048dba0d PurpleEventCallback + 46
    36  CoreFoundation                      0x03904ca5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
    37  CoreFoundation                      0x039049db __CFRunLoopDoSource1 + 523
    38  CoreFoundation                      0x0392f68c __CFRunLoopRun + 2156
    39  CoreFoundation                      0x0392e9d3 CFRunLoopRunSpecific + 467
    40  CoreFoundation                      0x0392e7eb CFRunLoopRunInMode + 123
    41  UIKit                               0x01cebd9c -[UIApplication _run] + 840
    42  UIKit                               0x01cedf9b UIApplicationMain + 1225
    43                         0x00008f2d main + 141
    44  libdyld.dylib                       0x044f36d9 start + 1
    45  ???                                 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

回答1:


Found the problem, apparently i was using a appearance method that was setting the leftView to a UIView. and when the UITextField inside UISearchBar was setting the magnifier image to UITextField's leftView (which was a UIView) thats why it was crashing. Fixed It.



来源:https://stackoverflow.com/questions/25214509/uisearchbar-in-a-uiviewcontroller-crashing

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!