Переключение контроллеров представления падает с необработанным исключением - PullRequest
0 голосов
/ 31 мая 2010

Я пытаюсь переключать представления между контроллерами представления в моем приложении для 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 ]

1 голос
/ 31 мая 2010

Это выглядит странно: test1 = [[test1 alloc] ...]. Вы отправляете сообщение alloc в переменную, которая, как я полагаю, изначально является нулевым указателем и поэтому игнорируется. Вы должны вызывать alloc для класса test1, а не для test1.

0 голосов
/ 31 мая 2010

test1 = [[test alloc] initWithNibName: @ "test" undle: nil]; // здесь должен быть тест не тест1

Когда вы создаете объекты из классов, вы должны использовать статические методы alloc и allocWithZone, используемые в классе NSObject. Таким образом, вы должны использовать имя класса. Не имя переменной. (Test1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...