2011-04-01 4 views
1

J'ai rencontré une erreur bizarre ... J'ai une classe qui en étend une autre, en en obtenant des variables. C'est vraiment simple. lorsque je compile le code pour le simulateur, cela fonctionne très bien. Quand je cours dans l'Iphone, il y a une erreur qui indique que le vairable n'est pas défini! Le code: parent en-tête de classe:héritage travaillant sur simulateur mais pas sur Iphone!

#import <UIKit/UIKit.h> 
#import "TarefaMap.h" 


@interface GenericTarefaTableView : UITableViewController { 
TarefaMap* tarefaMap; 
TarefaMap* tarefaMapOriginal; 
} 
@property (nonatomic, retain) TarefaMap* tarefaMap; 
@property (nonatomic, retain) TarefaMap* tarefaMapOriginal; 


@end 

mise en œuvre de la classe parente:

#import "GenericTarefaTableView.h" 


@implementation GenericTarefaTableView 
@synthesize tarefaMap,tarefaMapOriginal; 


@end 

enfant en-tête de classe:

@interface EditTarefaViewController : GenericTarefaTableView <UITextFieldDelegate , UITextViewDelegate> { 

Tarefa* tarefa; 
NSArray *fieldLabels; 
UITextField *textFieldBeginEdited; 
BOOL isEdit; 
IBOutlet UITableViewCell *cell0; 
IBOutlet UITextView* textView; 
NSManagedObjectContext* context; 



} 

@property (nonatomic, retain) NSManagedObjectContext* context; 
@property (nonatomic, retain) IBOutlet UITextView* textView; 
@property (nonatomic, retain) IBOutlet UITableViewCell *cell0; 
@property (nonatomic, retain) Tarefa* tarefa; 
@property (nonatomic, retain) UITextField* firstField; 
@property (nonatomic, retain) NSArray *fieldLabels; 
@property (nonatomic, retain) UITextField *textFieldBeingEdited; 

@end 

mise en œuvre de la classe des enfants:

#import "EditTarefaViewController.h" 

@implementation EditTarefaViewController 



@synthesize tarefa, textFieldBeingEdited,firstField,fieldLabels,textView, cell0, context; 
NSMutableArray *textFieldarray; 
UIActionSheet *actionSheet; 
UITableViewCell* cell1; 


- (void)viewDidLoad 
{ 


NSLog(@"ViewDidLoad"); 
[super viewDidLoad]; 
self.tarefaMap=[[TarefaMap alloc] initWithTarefa:tarefa]; 
self.tarefaMapOriginal=[[TarefaMap alloc] initWithTarefa:tarefa]; 

if ([tarefaMapOriginal isEqual:tarefaMap]) { 
    NSLog(@"SOMOS IGUAIS!!!!!"); 
} 
    NSLog(@"Comparando tarefas!!!!!"); 
if ([tarefaMapOriginal isEqualtoTarefaMap:tarefaMap]) { 
    NSLog(@"SOMOS IGUAIS2!!!!!"); 
} 
} 

Cette c ompiles bien sur le simulateur, mais quand j'essaie sur l'IPhone, j'obtiens une erreur en disant que les variables tarefaMap est non déclarée, et devrait être déclarée sur la fonction ...

Avez-vous trouvé l'avis de la part

+0

Essayez '[self.tarefaMapOriginal isEqual: self.tarefaMap]', aussi, postez l'erreur exacte et sur quelle ligne il se produit. Qui aide. –

+0

Le problème pourrait provenir des variables étant @protégées par défaut dans votre build de simulateur, et @private dans votre build iphone. C'est juste une supposition cependant, car je n'ai aucune idée de comment vous feriez cela. –

Répondre

1
@interface EditTarefaViewController : GenericTarefaTableView <UITextFieldDelegate , UITextViewDelegate> { 

avant cette ligne ajouter cette

@class GenericTarefaTableView; 

puis dans le fichier .m ajouter

import "GenericTarefaTableView.h" 

et changer comme dans viewDidLoad

NSLog(@"ViewDidLoad"); 
[super viewDidLoad]; 
super.tarefaMap=[[TarefaMap alloc] initWithTarefa:tarefa]; 
super.tarefaMapOriginal=[[TarefaMap alloc] initWithTarefa:tarefa]; 


@implementation EditTarefaViewController 

avant que u doivent importer TarefaMap.h et aussi le déclarer dans EditTaref aViewController.h fichier avec comme celui-ci

@class TarefaMap; 
+0

hey tu l'as eu me répondre –

Questions connexes