Question

Je suis en train de changer de vue entre les contrôleurs de vue dans mon application iPhone, mais il est écrasé. Fondamentalement, je suis passer de mainScreen à tester.

J'obtiens une erreur dans le débogueur:

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
Était-ce utile?

La solution

Cela semble étrange: test1 = [[test1 alloc] ...]. Vous envoyez le message alloc à une variable, que je suppose est d'abord le pointeur NULL, et est donc tranquillement ignoré. Vous devez appeler alloc sur le type de classe de test1, pas test1 lui-même.

Autres conseils

test1 = [[Test alloc] initWithNibName: @ "test" undle: nil]; // ici, il doit être testé. pas test1

Lorsque vous créez des objets de classes que vous devez utiliser des méthodes statiques alloc et allocWithZone utilisent dans la classe NSObject. Donc, vous devez utiliser le nom de classe. Pas le nom de la variable. (Test1)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top