NSArray count возвращает правильное число, но ошибки при доступе к данным

Я пытаюсь получить количество элементов в массиве, чтобы поместить его в right detail из cell, Достаточно интересно, что я получаю правильную count но мой, когда я пытаюсь NSLog массив, который он возвращает <fault>,

NSPredicate *searchPredicate = [NSPredicate predicateWithFormat:@"muscleGroup == %@ && specificExercise == %@ && date >= %@ && date < %@", theMuscleGroup, theExercise, fromDate, toDate];

NSFetchRequest *fetchRequestTemp = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
                               entityForName:@"WeightLiftingInfo" inManagedObjectContext:_managedObjectContext];

[fetchRequestTemp setPredicate:searchPredicate];
[fetchRequestTemp setEntity:entity];
NSError *error;
NSArray *tempArray = [[NSArray alloc] initWithArray:[_managedObjectContext executeFetchRequest:fetchRequestTemp error:&error]];

NSLog(@"%@", tempArray);
NSLog(@"%d", [tempArray count]);

Мой вопрос: в основном, что я делаю не так? Я неправильно запускаю массив или пытаюсь неправильно его записать?

Я часами искал и пробовал разные программы, но не могу понять. Любая помощь будет оценена. Если вам нужна дополнительная информация или я делаю что-то против рекомендаций согласно SO, пожалуйста, дайте мне знать, прежде чем закрыть эту ветку или "-1". ЕСТЬ MERCY, я новичок и склоняюсь:)

1 ответ

Решение

Когда вы выполняете запрос на выборку, вы получаете ошибку управляемого объекта. То есть прокси-подобный объект, который представляет результаты, даже если реальные объекты данных еще не были загружены из хранилища данных. Ошибка знает, сколько объектов находится в массиве и т. Д., И когда вы обращаетесь к объектам, ошибка прозрачно загружает реальные объекты.

Итак, ситуация нормальная, не беспокойтесь об этом. Попробуйте использовать результаты вместо их регистрации, и я думаю, вы обнаружите, что все работает хорошо.

Другие вопросы по тегам