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 ответ
Когда вы выполняете запрос на выборку, вы получаете ошибку управляемого объекта. То есть прокси-подобный объект, который представляет результаты, даже если реальные объекты данных еще не были загружены из хранилища данных. Ошибка знает, сколько объектов находится в массиве и т. Д., И когда вы обращаетесь к объектам, ошибка прозрачно загружает реальные объекты.
Итак, ситуация нормальная, не беспокойтесь об этом. Попробуйте использовать результаты вместо их регистрации, и я думаю, вы обнаружите, что все работает хорошо.