Ваш цикл звучит странно.
for(int i = 0; i < [[myParser items] count]; i++) {
contacts *new = [[Telefonbuch alloc] init];
new = (contacts *) [[myParser items] objectAtIndex:i];
[numbers addObject:new];
[self.tableView reloadData];
Сначала избегайте использования ключевого слова new
(как уже предлагал пользователь1118321).
Затем, что такое contacts
?Является ли contacts
суперклассом типа Telefonbuch
?
Что означают эти две строки?
contacts *new = [[Telefonbuch alloc] init];
new = (contacts *) [[myParser items] objectAtIndex:i];
Вы выделяете-инициализируете экземпляр класса Telefonbuch
для new
(избегайте этого), но затем вы назначаете эту переменную другому объекту.Почему?
Правильный код может выглядеть следующим образом.
for(int i = 0; i < [[myParser items] count]; i++) {
Telefonbuch* newContact = (Telefonbuch*) [[myParser items] objectAtIndex:i]; // or contacts* newContact = (contacts*) [[myParser items] objectAtIndex:i];
// maybe it could be better to rename contacts with a capital letter
[numbers addObject:newContact];
}
[self.tableView reloadData];
Некоторые примечания
Если вы хотите добавить или удалить элемент вПредставление таблицы, вам нужно сделать это в 2 этапа:
1) Разобраться с моделью
[yourModel removeObjectAtIndex:row];
2) Разобраться с анимацией вашего стола
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
Есливам нужно скачать контент, может быть, вы могли бы сделать это асинхронно, не блокируя основной поток.В частности, это может быть синхронный вызов, который может быть блокирующим (поскольку у меня нет подробностей, я только предполагаю это).
DataFileToObjectParser *myParser = [[DataFileToObjectParser alloc] parseXMLAtUrl:url toObject:@"contacts" parseError:nil];
Если вы не используете ARC, обратите внимание на управление памятью .
Надеюсь, это поможет.