- [UIViewController _keyboard]: Unbekannter Selektor an Instanz gesendet 0x7b731ac0
Ich schreibe eine App mit 3 viewControllern, die in einem MainViewController enthalten sind. Eine davon wird über das Storyboard gesteuert und zeigt Anzeigen an. Die beiden anderen viewController zeigen Informationen an. Abhängig von der Menüschaltfläche und dem darzustellenden viewController bestimmt die App, welcher viewController geändert werden soll.
So weit alles funktioniert gut, außer wennIRGENDEI textField ist ausgewählt. Dadurch wird der Fehler angezeigt. Die Instanz ist der viewController, der das textField enthält, und der im Fehler genannte UIViewController. Auch die Instanz ist nicht gleich Null. Ich habe einen Haltepunkt gesetzt bei:textFieldShouldBeginEditing:
und diese Methode wird vor dem Absturz aufgerufen. Die App ist universell und stürzt nicht auf der iPhone-Version ab, die dasselbe Setup verwendet, außer dass nur die Anzeigen und ein anderer viewController angezeigt werden. Lassen Sie mich wissen, wenn Sie mehr Code sehen oder Ideen haben möchten. Ich kann den Selektor @ nicht find_keyboard
überall und habe keine Ahnung, was von hier aus zu tun ist.
Ich habe versucht, ein neues Projekt mit minimalem Code zu erstellen, um den Fehler anzuzeigen, aber alle neuen Projekte funktionieren einwandfrei, sodass nicht zu viele viewController gleichzeitig sichtbar sind. Ich weiß auch, dass mein Übergangscode gut funktioniert, da er in den neuen Projekten funktioniert. Die von mir geschriebenen viewController sind auch nicht das Problem, da der exakt gleiche viewController sowohl im iPhone-Teil der App als auch in einem neuen iPad-Testprojekt verwendet wird und das Problem überhaupt nicht auftritt.
[Bearbeiten - Code entfernt, ich habe den Code in einem neuen Projekt getestet und es hat gut funktioniert]
[edit2 - Code und Erklärung hinzugefügt]
@implementation FSMainiPadViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.leftView = [[UIView alloc] init];
self.rightView = [[UIView alloc] init];
if (!self.testVC) {
self.testVC = [[FSTestViewController alloc] initWithNibName:nil bundle:nil];
}
self.inputViewController = self.testVC;
self.resultsVC = [[FSResultsTableViewController alloc] initWithNibName:nil bundle:nil];
self.dataViewController = self.resultsVC;
self.leftView.frame = CGRectMake(0, VIEWFRAMEOFFSET/2, self.view.frame.size.width/2 , self.view.frame.size.height - IPADBANNERHEIGHT - VIEWFRAMEOFFSET/2 - MENUHEIGHT);
self.rightView.frame = CGRectMake((self.view.frame.size.width)/2, VIEWFRAMEOFFSET/2, self.view.frame.size.width/2, self.view.frame.size.height - IPADBANNERHEIGHT - VIEWFRAMEOFFSET/2 - MENUHEIGHT);
[self addChildViewController:self.inputViewController];
[self addChildViewController:self.dataViewController];
[self.view addSubview:self.inputViewController.view];
[self.view addSubview:self.dataViewController.view];
[self.dataViewController didMoveToParentViewController:self];
[self.inputViewController didMoveToParentViewController:self];
}
Das Auswählen des Textfelds verursacht denselben Fehler. Ich habe buchstäblich alles andere in meinem MainViewController auskommentiert und es verursacht immer noch dieses Problem, aber wenn ich ein neues Projekt erstelle, einschließlich meines komplizierteren Codes und meiner xibs, kann ich den Absturz nicht erneut erstellen.
Lassen Sie mich wissen, ob Sie mehr Code möchten.
Stacktrace*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[FSSettingsViewController _keyboard]: unrecognized selector sent to instance 0x7da1dbf0'
*** First throw call stack:
(
0 CoreFoundation 0x0326d946 __exceptionPreprocess + 182
1 libobjc.A.dylib 0x02ef6a97 objc_exception_throw + 44
2 CoreFoundation 0x032755c5 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277
3 CoreFoundation 0x031be3e7 ___forwarding___ + 1047
4 CoreFoundation 0x031bdfae _CF_forwarding_prep_0 + 14
5 UIKit 0x01e46d91 -[UIInputViewSet keyboard] + 52
6 UIKit 0x01b0807c -[UIKeyboardImpl setOrientation] + 94
7 UIKit 0x01b082c8 -[UIKeyboardImpl setFrame:] + 197
8 UIKit 0x01939084 UIViewCommonInitWithFrame + 1072
9 UIKit 0x01938bea -[UIView initWithFrame:] + 124
10 UIKit 0x01b02b62 -[UIKeyboardImpl initWithFrame:] + 107
11 UIKit 0x01b01c58 +[UIKeyboardImpl sharedInstance] + 158
12 UIKit 0x01e3bf4f -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] + 962
13 UIKit 0x01a845a5 -[UIResponder(UIResponderInputViewAdditions) reloadInputViews] + 316
14 UIKit 0x01a838ec -[UIResponder becomeFirstResponder] + 562
15 UIKit 0x0194a1c0 -[UIView(Hierarchy) becomeFirstResponder] + 114
16 UIKit 0x02115477 -[UITextField becomeFirstResponder] + 51
17 UIKit 0x01d183ef -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] + 200
18 UIKit 0x01d1aa16 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:] + 2762
19 UIKit 0x01d0e287 _UIGestureRecognizerSendActions + 327
20 UIKit 0x01d0cb04 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 561
21 UIKit 0x01d0eb4d -[UIGestureRecognizer _delayedUpdateGesture] + 60
22 UIKit 0x01d124ca ___UIGestureRecognizerUpdate_block_invoke661 + 57
23 UIKit 0x01d1238d _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 317
24 UIKit 0x01d06296 _UIGestureRecognizerUpdate + 3720
25 UIKit 0x0191f26b -[UIWindow _sendGesturesForEvent:] + 1356
26 UIKit 0x019200cf -[UIWindow sendEvent:] + 769
27 UIKit 0x018e5549 -[UIApplication sendEvent:] + 242
28 UIKit 0x018f537e _UIApplicationHandleEventFromQueueEvent + 20690
29 UIKit 0x018c9b19 _UIApplicationHandleEventQueue + 2206
30 CoreFoundation 0x031911df __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
31 CoreFoundation 0x03186ced __CFRunLoopDoSources0 + 253
32 CoreFoundation 0x03186248 __CFRunLoopRun + 952
33 CoreFoundation 0x03185bcb CFRunLoopRunSpecific + 443
34 CoreFoundation 0x031859fb CFRunLoopRunInMode + 123
35 GraphicsServices 0x0519f24f GSEventRunModal + 192
36 GraphicsServices 0x0519f08c GSEventRun + 104
37 UIKit 0x018cd8b6 UIApplicationMain + 1526
38 FoodStorage 0x000a795d main + 141
39 libdyld.dylib 0x04e14ac9 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Dies ist das erste Mal, dass der Google-Computer mich im Stich lässt. Bei all den Problemen, die ich bei der Erstellung dieser App hatte, ist dies das einzige Problem, bei dem ich scheinbar niemanden finden kann.