更改viewController iOS4.3后崩溃

时间:2013-02-07 16:30:26

标签: ios objective-c xcode crash-reports

我想知道为什么我的iOS应用程序崩溃了(部署目标iOS 4.3 - xcode 4)。

我在iPad模拟器5.0到6.1中进行了测试并且100%工作但是在我的iPad上使用iOS 4.3(好吧,它不是我的,所以我无法更新iOS,但是使用旧的iOS版本练习很好)会崩溃应用说这样:

2013-02-07 16:07:45.093 GeoRuta[169:707] -[mainViewController presentViewController:animated:completion:]: unrecognized selector sent to instance 0x331960
2013-02-07 16:07:45.113 GeoRuta[169:707] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[mainViewController presentViewController:animated:completion:]: unrecognized selector sent to instance 0x331960'
*** Call stack at first throw:
(
0   CoreFoundation                      0x30f8064f __exceptionPreprocess + 114
1   libobjc.A.dylib                     0x32828c5d objc_exception_throw + 24
2   CoreFoundation                      0x30f841bf -[NSObject(NSObject) doesNotRecognizeSelector:] + 102
3   CoreFoundation                      0x30f83649 ___forwarding___ + 508
4   CoreFoundation                      0x30efa180 _CF_forwarding_prep_0 + 48
5   GeoRuta                             0x00003781 -[mainViewController saltarConfiguracion:] + 184
6   CoreFoundation                      0x30ef0571 -[NSObject(NSObject) performSelector:withObject:withObject:] + 24
7   UIKit                               0x3575eec9 -[UIApplication sendAction:to:from:forEvent:] + 84

8   UIKit                               0x3575ee69 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 32
9   UIKit                               0x3575ee3b -[UIControl sendAction:to:forEvent:] + 38
10  UIKit                               0x3575eb8d -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 356
11  UIKit                               0x3575f423 -[UIControl touchesEnded:withEvent:] + 342
12  UIKit                               0x3575dbf5 -[UIWindow _sendTouchesForEvent:] + 368
13  UIKit                               0x3575d56f -[UIWindow sendEvent:] + 262
14  UIKit                               0x35746313 -[UIApplication sendEvent:] + 298
15  UIKit                               0x35745c53 _UIApplicationHandleEvent + 5090
16  GraphicsServices                    0x31a4de77 PurpleEventCallback + 666
17  CoreFoundation                      0x30f57a97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26
18  CoreFoundation                      0x30f5983f __CFRunLoopDoSource1 + 166
19  CoreFoundation                      0x30f5a60d __CFRunLoopRun + 520
20  CoreFoundation                      0x30eeaec3 CFRunLoopRunSpecific + 230
21  CoreFoundation                      0x30eeadcb CFRunLoopRunInMode + 58
22  GraphicsServices                    0x31a4d41f GSEventRunModal + 114
23  GraphicsServices                    0x31a4d4cb GSEventRun + 62
24  UIKit                               0x35770d69 -[UIApplication _run] + 404
25  UIKit                               0x3576e807 UIApplicationMain + 670
26  GeoRuta                             0x000030a9 main + 172
27  GeoRuta                             0x00002ff8 start + 40
)
terminate called after throwing an instance of 'NSException'

选择器是:

- (IBAction) saltarConfiguracion: (id)sender
{
    configuracionViewController *obj = [[configuracionViewController alloc]initWithNibName:@"configuracionViewController" bundle:nil];
    [self presentViewController:obj animated:YES completion:nil];
}

1 个答案:

答案 0 :(得分:5)

因为[self presentViewController:obj animated:YES completion:nil]是一种新的iOS 5方法。你不能在iOS 4上使用它。相反,尝试调用[self presentModalViewController:obj animated:YES](类似的东西)