Я пытаюсь извлечь данные из Core Data и поместить их в изменяемый массив
У меня есть сущность с именем Stock, а в свойствах - атрибуты: код, цена и описание ...
Как получить данные, хранящиеся в этих атрибутах, в простой изменяемый массив?
Я добавил этот код ...
NSMutableArray *array = [[NSMutableArray alloc]init];
[array addObject:[stock valueForKey:@"code"]];
и я получаю эту ошибку ...
'-[NSCFArray insertObject:atIndex:]: attempt to insert nil'
У меня есть «Класс управляемых объектов», называемый «Запас», и объявленный как «Запас». Я что-то упустил?
Если я сделаю это в -cellForRowAtIndexPath
...
Stock *stock1 = [fetchedResultsController objectAtIndexPath:indexPath];
array = [[NSMutableArray alloc] init];
[array addObject:stock1.code];
NSLog(@"Filtered List is? %@", array);
В консоли я вижу эти 2 пункта
'The Filtered array is 810005'
'The Filtered array is 810007
Что я должен сделать, чтобы получить эти элементы (810005 и 810007) в массив, настроенный методом -viewDidLoad
? Как это происходит в -cellForRowAtIndexPath
?
Обновление
Привет, Маркус,
Наконец-то все заработало (ну, 80%)
Я положил это в -cellForRowAtIndexPath
Stock *product = nil;
if (tableView == self.searchDisplayController.searchResultsTableView)
{
filteredListContent = [NSMutableArray arrayWithObjects:stock1.code, nil];
product = [self.filteredListContent objectAtIndex:indexPath.row];
[self configureFilteredCell:cell atIndexPath:indexPath];
[filteredListContent objectAtIndex:indexPath.row];
NSLog(@"Filtered List Array List is? %@", stock1.code);
}
else
{
listContent = [NSMutableArray arrayWithObjects:stock1.code, nil];
[self configureCell:cell atIndexPath:indexPath];
NSLog(@"List Array List is? %@", stock1.code);
}
Тогда я использовал этот код в области видимости
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
self.savedSearchTerm = searchText;
if (searchText !=nil)
{
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"code beginsWith[cd] %@", searchText];
[fetchedResultsController.fetchRequest setPredicate:predicate];
}
else
{
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"code contains[cd] %@", searchText];
[fetchedResultsController.fetchRequest setPredicate:predicate];
[self.tableView reloadData];
}
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error])
{
// Handle error
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
exit(-1); // Fail
}
[self.tableView reloadData];
Все фильтруется нормально, но когда я нажимаю "Отмена" при поиске, исходные данные не перезагружаются ...
Я не буду побежден ... !!
Thanx