0

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」が表示されたことです)

助けてください :)

4

1 に答える 1

1

.XIB ファイルで接続を確認してください。「ファイル所有者」が RootViewController に設定されているファイルを StartScreen が使用しているようです。

于 2011-12-29T22:51:24.037 に答える