切换视图控制器因未捕获的异常而崩溃

时间:2010-05-31 09:50:23

标签: iphone objective-c uncaught-exception

我正在尝试在我的iPhone应用程序中切换视图控制器之间的视图,但它崩溃了。 基本上我正在从主屏幕切换到测试。

我在调试器中收到错误:

0x01d6a000  <+0000>  push   %ebp
0x01d6a001  <+0001>  mov    %esp,%ebp
0x01d6a003  <+0003>  int3   
0x01d6a004  <+0004>  leave  (HIGHLIGHTED)
0x01d6a005  <+0005>  ret    
0x01d6a006  <+0006>  nopw   %cs:0x0(%eax,%eax,1)

mainscreen.h

#import <UIKit/UIKit.h>

@interface MainScreen : UIViewController {

}

-(IBAction)btnFirstPage:(id)sender;

@end

mainscreen.m

#import "MainScreen.h"
#import "test.h"

@implementation MainScreen

-(IBAction)btnFirstPage:(id)sender{

 test1 = [[test1 alloc] 

    initWithNibName:@"test"  (test may not respond to -alloc)

    bundle:nil];

    [self.view addSubview:test1.view];

/* etc. */

test.h

#import <UIKit/UIKit.h>

@interface test : UIViewController {
}

@end

2 个答案:

答案 0 :(得分:1)

这看起来很奇怪:test1 = [[test1 alloc] ...]。您正在将alloc消息发送到变量,我假设该变量最初是空指针,因此被静静地忽略。您应该在alloc的班级类型上调用test1,而不是test1本身。

答案 1 :(得分:0)

test1 = [[test alloc] initWithNibName:@“test”undle:nil]; //这里必须要测试。不是test1

当您从类创建对象时,您必须在NSObject类中使用alloc和allocWithZone静态方法。所以你必须使用类名。不是变量名。(test1)