2013-02-26 3 views
1

** чДобавить/Изменить/Перенести пользовательский TableViewCell? ..

IBOutlet UITableView *Table; 
NSMutableArray *Currency; 
NSArray *Datacell; 

** Создание пользовательского массива

Custom *usd = [Custom new]; 
usd.name = @"USD"; 
usd.detail = @"United States Dollar"; 
usd.imageFile = @"usd.jpg"; 


Custom *eur = [Custom new]; 
eur.name = @"EUR"; 
eur.detail = @"Euro Member Countries"; 
eur.imageFile = @"eur.jpg"; 

Custom *aud = [Custom new]; 
aud.name = @"AUD"; 
aud.detail = @"Australia Dollar"; 
aud.imageFile = @"AUD.jpg"; 
Currency = [NSArray arrayWithObjects:usd,eur,aud, nil]; 

Override для поддержки редактирования табличного **

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
if (editingStyle == UITableViewCellEditingStyleDelete) { 
// Delete the row from the data source 

    [Currency removeObjectAtIndex:indexPath.row]; 
    [Table reloadData]; 
[tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
} 
else if (editingStyle == UITableViewCellEditingStyleInsert) { 
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view 
} 
} 

Крушение:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI removeObjectAtIndex:]: unrecognized selector sent to instance 0x682a0c0' 

ответ

0

Очевидно, что у валюты массива нет элемента, на который указывает [Currency removeObjectAtIndex: indexPath.row];

Вы определили валюту как NSMutableArray и заняли валюту = [NSArray arrayWithObjects: usd, eur, aud, nil];

Сделать это [NSMutableArray arrayWithObjects: usd, eur, aud, nil];

0

Вы инициализация Currency объекта как NSArray

Заменить

Currency = [NSArray arrayWithObjects:usd,eur,aud, nil];

с

Currency = [NSMutableArray arrayWithCapacity:3]; 
[Currency addObject:usd]; 
[Currency addObject:eur]; 
[Currency addObject:aud]; 
Смежные вопросы