#objective-c #core-data #io
#objective-c #core-data #io
Вопрос:
У меня есть простая модель, которая представляет дни приема пищи и тренировок. У меня возникла проблема с получением дня из CoreData. Я получаю следующую ошибку.
2011-11-14 11:41:44.999 CalorificCounter[21002:fb03] -[__NSCFString timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x6a6d1a0
2011-11-14 11:41:45.001 CalorificCounter[21002:fb03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString timeIntervalSinceReferenceDate]: unrecognized selector sent to instance 0x6a6d1a0'
Код
-(Day *)getDayForDate:(NSDate *)date
{
Day *day;
date = [self dateAtStartOfDay:date];
NSFetchRequest *request = [[NSFetchRequest alloc]init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Day"
inManagedObjectContext:[self managedObjectContext]];
//Find the object that matches the given date from a predicate
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date == "%@"",date];
[request setEntity:entity];
[request setPredicate:predicate];
//Try to fetch
NSError *error;
NSArray *result = [[self managedObjectContext] executeFetchRequest:request
error:amp;error ] ;
Ошибка возникает при выполнении запроса на выборку. Я отследил выполнение, и все, кажется, имеет правильный тип (по крайней мере, я никогда не передаю строку по кругу). Заранее спасибо.
ОБНОВЛЕНИЕ Не заключайте указанную дату в кавычки
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date == %@",date];
Комментарии:
1. Вероятно, что-то не так с вашим хранилищем данных. По какой-то причине он ожидает дату, когда на самом деле получает строку. Взгляните на свой магазин по-другому.
2. Я отправляю дату, но она получает строку. Да, здесь что-то не так с типами.
3. Вы решили эту проблему?
4. На вопрос ответил OP внутри вопроса и должен быть удален.
Ответ №1:
Эта проблема возникает, когда вы присваиваете строку объекту date. Проверьте значение даты и верните объект NSDate