1

iOS アプリ (展開ターゲット iOS 4.3 - xcode 4) でこのクラッシュが発生する理由を知りたいと思いました。

私は iPad シミュレーター 5.0 から 6.1 でテストし、100% 動作しましたが、iOS 4.3 を搭載した iPad では (私のものではないので、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];
}
4

1 に答える 1

5

なぜなら[self presentViewController:obj animated:YES completion:nil]、新しいiOS5メソッドだからです。iOS 4では使用できません。代わりに[self presentModalViewController:obj animated:YES](そのようなもの)を呼び出してみてください

于 2013-02-07T16:34:44.110 に答える