У меня есть 2 основных объекта данных: Question и QuestionType.Каждый вопрос имеет ровно 1 вопросник.
Вопросник имеет строковый атрибут typeName;что в первую очередь определяет, какой это тип вопроса.Он фиксируется в списке нескольких разных типов.Мне интересно, можно ли использовать список всех типов вопросов в данных как перечисление, или, если нет, как лучше всего использовать этот список для назначения типа вопроса для вопроса и проверки типа вопроса позже?
В настоящее время, когда я хочу назначить тип для вопроса (основываясь на знании typeName), я делаю это:
NSFetchRequest *questionTypeFetchRequest = [[NSFetchRequest alloc] init];
questionTypeFetchRequest.entity = [NSEntityDescription entityForName:@"QuestionType" inManagedObjectContext:self.managedObjectContext];
NSPredicate *questionTypePredicate = [NSPredicate predicateWithFormat:@"typeName like %@", [questionData objectForKey:@"questionType"]];
questionTypeFetchRequest.predicate = questionTypePredicate;
question.questionType = [[self.managedObjectContext executeFetchRequest:questionTypeFetchRequest error:&error] objectAtIndex:0];
Это похоже на большую работу только для назначения QuestionTypeна мой вопрос!И я должен повторить это для других подобных объектов.
А потом, когда я хочу проверить тип вопроса позже, я делаю:
if ([question.questionType.typeName isEqualToString:@"text"]){
Это работает нормально, но я чувствую, что яследует сравнивать question.questionType с конкретным вопросом QuestionType, который я ищу, а не просто сравнивать typeName.
Есть ли способ настроить перечисление для хранения моих QuestionTypes, чтобы я мог сделать это:
question.questionType = Text;
switch(question.questionType)
{
case Text: