Используйте перечисление для определения четырех опций, например ::100100
typedef enum _NoteOptionType {
kNoteOptionTypeOne,
kNoteOptionTypeTwo,
kNoteOptionTypeThree,
kNoteOptionTypeFour,
kNoteOptionTypes,
} NoteOptionType;
Они будут пронумерованы от 0 до 5.
Базовые данные хранят целые числа как NSNumber
экземпляров. Возможно, вы могли бы сохранить в своей сущности Note
атрибут, который называется optionType
, который хранит NSNumber
эквивалент значения NoteOptionType
.
Вы можете преобразовать их в NSNumber
параметры, например, [NSNumber numberWithInt:kNoteOptionTypeOne]
.
Вы можете написать вспомогательный метод для преобразования NoteOptionType
в строку для помещения в UISegmentedControl
, например ::
+ (NSString *) keyForNoteOptionTypeTag:(NoteOptionType)optionTypeTag {
if (optionTypeTag == kNoteOptionTypeOne)
return [NSString stringWithFormat:@"First"];
else if (optionTypeTag == kNoteOptionTypeTwo)
return [NSString stringWithFormat:@"Second"];
...
return [NSString stringWithFormat:@"Undefined"];
}
Ссылка это так:
NSLog(@"second option is: %@", [Note keyForNoteOptionTypeTag:kNoteOptionTypeTwo]);
В вашей выборке вы можете использовать значения NSNumber
, которые вы поместили в хранилище базовых данных, в качестве критериев для сортировки, используя NSSortDescriptor
, например:
NSSortDescriptor *optionTypeDescriptor = [[NSSortDescriptor alloc] initWithKey:@"optionType" ascending:YES selector:nil];
NSArray *sortDescriptors = [NSArray arrayWithObjects:optionTypeDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[optionTypeDescriptor release];