Я новичок в задаче c, и мне была предоставлена существующая внешняя база кода, поэтому я прошу прощения, если я упустил что-то очень очевидное!
У меня есть модель данных цели, в которую я добавил дату:
![GoalDataModel](https://i.stack.imgur.com/YTIWg.png)
При отправке запроса в базу данных для массива целей возвращается следующее:
![GoalArray](https://i.stack.imgur.com/yOdNn.png)
Как видите, один из элементов массива возвращает дополнительный KVP, который является типом даты, который я ранее добавил в xcdatamodel. Эта дата относится к дате достижения цели.
![Goal](https://i.stack.imgur.com/N9M6C.png)
При итерации по этому массиву в цикле for и проверке, не является ли дата KVP не равной nil, возвращается NULL для объекта, для которого существует дата:
([[self.goalArray objectAtIndex:i] valueForKey:@"date"] != nil) ?
[[self.goalArray objectAtIndex:i] valueForKey:@"date"] : [NSNull null]
Однако другие значения в объекте, использующие то же выражение выше со своими ключами, возвращают ожидаемые значения:
![ArrayReturn](https://i.stack.imgur.com/yzBBj.png)
Стоит отметить, что для запуска приложения я изменяю дату xcdatamodel на строковое значение, а не дату для целей тестирования.
Я также добавил это к модели цели:
@synthesize date;
...
-(NSDate*) date {
return date;
}
-(void) setDate:(NSDate*)DateTime {
date = DateTime;
}
Есть ли что-то очевидное, что я упускаю, потому что я нахожусь в тупике?
Я снова прошу прощения, если это плохой вопрос. Я не могу найти никаких подсказок относительно того, как обращаться с объектами, которые могут возвращать или не возвращать определенный KVP
.