У меня есть пользовательская ячейка таблицы (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 ...
Попробуйте проверить фактический тип ячейки. Возможно, вы указали неправильное имя класса в своем файле nib для своей ячейки? –
Можете ли вы установить точку останова в '[cell setMimo: ..]' и проверить, действительно ли 'cell' является типом класса' MimoCell'? – GoodSp33d
Это никогда не ноль ?? Я думаю, вам нужно загрузить кусок вашей настраиваемой ячейки в метод init в своем классе CustomCell. –