2010-11-24 5 views
0
#import <UIKit/UIKit.h> 

typedef enum 
{ 
    CellTypeTextInput, 
    CellTypePicker 
}CellType; 

@interface TVCellWithProperties : UITableViewCell { 


    CellType _cellType; 
} 

-(void)setCellType:(CellType)newType; 
-(CellType)CellType; 

@end 

L'en-têtequel est le problème avec le sélecteur pour un type de valeur ici, objectif-c?

#import "TVCellWithProperties.h" 

@implementation TVCellWithProperties 

-(void)setCellType:(CellType)newType 
{ 
    _cellType = newType; 
} 

-(CellType)CellType 
{ 
    return _cellType; 
} 

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { 
    if ((self = [super initWithStyle:style reuseIdentifier:reuseIdentifier])) { 
     // Initialization code 
    } 
    return self; 
} 

- (void)setSelected:(BOOL)selected animated:(BOOL)animated { 

    [super setSelected:selected animated:animated]; 

    // Configure the view for the selected state 
} 

- (void)dealloc { 
    [super dealloc]; 
} 
@end 

Je fais

[cell setCellType:CellTypePicker]; 

en raison de l'application Mettre fin exception uncaught 'NSInvalidArgumentException', raison: « - [UITableViewCell setCellType:]: sélecteur non reconnu envoyé à l'instance 0x5f66c30 '

J'ai essayé les accesseurs par défaut en utilisant d'abord synthétiser, mais ne fonctionnait pas alors j'ai essayé de faire les choses manuellement et encore ne trouve pas le sélecteur. Parce qu'il ne voit pas le UITableViewCell en tant que TVCellWithProperties. Quel est le problème avec ma mise en œuvre?

que je faisais ce qui suit:

TVCellWithProperties *cell = (TVCellWithProperties*)[tv dequeueReusableCellWithIdentifier:MyIdentifier]; 
    if (cell == nil) { 
     [[NSBundle mainBundle] loadNibNamed:@"EditableContent" owner:self options:nil]; 

     cell = tvCell; 
     self.tvCell=nil; 
    } 

Le problème est que dans le nibfile, le tableviewCell i chargeais était de type 'UITableViewCell', donc je l'ai fait 'TVCellWithProperties'. et cela a fonctionné.

Merci NR4TR

Répondre

0

Etes-vous sûr que vous envoyez un message à TVCellWithProperties par exemple, mais pas UITableViewCell par exemple? Vérifiez les initialisations à l'intérieur de la méthode cellForRowAtIndexPath.

+0

Merci pour l'ouverture des yeux. – LolaRun

+0

Le problème était que dans le fichier nibfile, la tableviewCell que je chargeais était de type 'UITableViewCell', donc je l'ai fait 'TVCellWithProperties'. et ça a marché. Merci NR4TR – LolaRun

+0

Vous êtes les bienvenus :) – knuku