2015-03-24 7 views
0

У меня есть пользовательская ячейка таблицы (Named MimoCell), у которой есть метод, который подготавливает ячейку, например название, субтитры, изображения и прочее.Пользовательский UITableViewCell не получает доступ к методам

Когда я пытаюсь получить доступ к этому методу, передав объект, который предполагается принять, я получаю нераспознанный селектор, отправленный в экземплярную ошибку. Сложная вещь здесь заключается в том, что я передаю этот объект по ссылке, что, как я подозреваю, вызывает ошибку. это клетка

MimoCell.h

#import <UIKit/UIKit.h> 
#import "Mimo.h" 
@interface MimoCell : UITableViewCell 

@property (nonatomic)BOOL flagFriendCell; 
@property (nonatomic)BOOL flagImageMimo; 
@property (nonatomic,strong)UILabel *detailLabel; 
@property (nonatomic,strong)UIButton *mimoImageBtn; 
@property (nonatomic,strong)UIImage *mimoImage; 


-(void)setMimo:(Mimo**)theMimo; 

@end 

Это MimoCell.m

#import "MimoCell.h" 
#import "currentUser.h" 
@implementation MimoCell 
{ 
    Mimo *mimo; 
    currentUser *thisUser; 
    NSTimer *syncCellTimer; 
} 
@synthesize detailLabel; 
@synthesize flagFriendCell; 
@synthesize flagImageMimo; 
@synthesize mimoImageBtn; 
@synthesize mimoImage; 
-(void)setMimo:(Mimo *__autoreleasing *)theMimo{ 
    mimo = *theMimo; 
    if(mimo.flagIsImage) 
     flagImageMimo = NO; 
    else 
     flagImageMimo = YES; 

    if([mimo.senderID isEqualToString:thisUser.userID]) 
     flagFriendCell = NO; 
    else 
     flagFriendCell = YES; 


} 



- (void)awakeFromNib { 
    // Initialization code 
    thisUser = [currentUser instance]; 
    detailLabel = [[UILabel alloc]initWithFrame:CGRectMake(30.0, 87.0, 200.0, 12)]; 
    [detailLabel setFont:[UIFont fontWithName:@"Helveltica" size:11]]; 
    [self.textLabel setTextAlignment:NSTextAlignmentCenter]; 
    syncCellTimer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(syncCell) userInfo:nil repeats:YES]; 
    [syncCellTimer fire]; 
    mimoImageBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
} 

И это где я справиться с этим

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    static NSString *CellIdentifier = @"mimoCell"; 
    MimoCell *cell = (MimoCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if(cell == nil){//It's never nil 
     NSArray *nib = [[NSBundle mainBundle]loadNibNamed:@"MimoCell" owner:self options:nil]; 
     cell = [nib objectAtIndex:0]; 
    } 

    Mimo *workingMimo = [arrayOfMimos objectAtIndex:indexPath.row]; 
    [cell setMimo:&workingMimo];//RIGHT HERE I GET THE UNRECOGNIZED SLECTOR ERROR 



    return cell; 
} 

Какие я делаю неправильно? Я действительно хочу, чтобы передать по ссылке объекта MIMO ...

+0

Попробуйте проверить фактический тип ячейки. Возможно, вы указали неправильное имя класса в своем файле nib для своей ячейки? –

+0

Можете ли вы установить точку останова в '[cell setMimo: ..]' и проверить, действительно ли 'cell' является типом класса' MimoCell'? – GoodSp33d

+0

Это никогда не ноль ?? Я думаю, вам нужно загрузить кусок вашей настраиваемой ячейки в метод init в своем классе CustomCell. –

ответ

0

Хорошо, я нашел проблему. Как мы могли видеть, класс ячейки на cellForRowAtIndexPath: действительно был из моего класса MimoCell. Но ошибка вызывала ошибку класса UITableCell. Это показало мне, что где-то моя камера была простым UITableCell.

ЭТО БЫЛО ИСТОРИЯ.

I Не задал класс в ячейке раскадровки.

0

Если вы хотите загрузить пользовательские перья к использованию клеток этого в вашем viewDidLoad Метода

UINib *nib = [UINib nibWithNibName:@"MimoCell" bundle:nil]; 
[tableViewName registerNib:nib forCellReuseIdentifier:@"MimoCell"]; 

Я думаю, что это то, что вы пропали без вести.

+0

Это имеет смысл, но это не сработало ... –

Смежные вопросы