我正在尝试在我的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)
#import <UIKit/UIKit.h>
@interface MainScreen : UIViewController {
}
-(IBAction)btnFirstPage:(id)sender;
@end
#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. */
#import <UIKit/UIKit.h>
@interface test : UIViewController {
}
@end
答案 0 :(得分:1)
这看起来很奇怪:test1 = [[test1 alloc] ...]
。您正在将alloc
消息发送到变量,我假设该变量最初是空指针,因此被静静地忽略。您应该在alloc
的班级类型上调用test1
,而不是test1
本身。
答案 1 :(得分:0)
test1 = [[test alloc] initWithNibName:@“test”undle:nil]; //这里必须要测试。不是test1
当您从类创建对象时,您必须在NSObject类中使用alloc和allocWithZone静态方法。所以你必须使用类名。不是变量名。(test1)