XcodeでiOSアプリを作ろうとしていますが、今まではすべてうまくいきました。MainWindow.xib にナビゲーション コントローラーがあり、最初に RootViewController NIB をロードしましたが、以前に起動画面が必要なため、メインに変更しました。しかし、起動時にアプリがエラー「SIGABRT」でクラッシュするようになりました。スレッド 1 0 中止:
0x99771bdd <+0167> jmp 0x99771c0c <abort+214>
11 UIApplicationMain では次のようになります。
0x0036da9b <+1175> xor %eax,%eax
そしてmain.mで:
int retVal = UIApplicationMain(argc, argv, nil, nil);
止まったところ。
新しいファイル: StartScreen.h:
#import <UIKit/UIKit.h>
#import "RootViewController.h"
@interface StartScreen : UIViewController {
RootViewController *rootViewController;
IBOutlet UIButton *showList;
}
@property(nonatomic, retain) RootViewController *rootViewController;
@end
StartScreen.m:
#import "StartScreen.h"
@implementation StartScreen
@synthesize rootViewController;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
[showList addTarget:self action:@selector(showListButtonClicked) forControlEvents:UIControlEventTouchUpInside];
return self;
}
-(void)showListButtonClicked {
if(self.rootViewController == nil) {
RootViewController *view2 = [[RootViewController alloc] initWithNibName:@"rootviewcontroller" bundle:nil];
self.rootViewController = view2;
[view2 release];
}
rootViewController.title = @"Test";
[self.navigationController pushViewController:self.rootViewController animated:YES];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
#pragma mark - View lifecycle
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)viewDidUnload
{
[super viewDidUnload];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
@end
起動イメージが表示されてから 1 秒後にアプリが直接シャットダウンします。
(別の問題は、このエラーが発生する前に、シミュレーターでアプリを閉じて再起動した後にエラー「SIGKILL」が表示されたことです)
助けてください :)