使用枚举定义四个选项,例如:
typedef enum _NoteOptionType {
    kNoteOptionTypeOne,
    kNoteOptionTypeTwo,
    kNoteOptionTypeThree,
    kNoteOptionTypeFour,
    kNoteOptionTypes,
} NoteOptionType;
这些将被编号为 0 到 5。
Core Data 将整数存储为NSNumber实例。您也许可以在您的Note实体中保留一个名为的属性,该属性optionType存储值的NSNumber等价物NoteOptionType。
您可以NSNumber通过类似的方式将这些转换为选项,例如[NSNumber numberWithInt:kNoteOptionTypeOne].
您可以编写一个方便的方法来将 a 转换为NoteOptionType要放入 a 的字符串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]);
在您的 fetch 中,您可以使用NSNumber放入 Core Data 存储中的值作为排序标准,通过使用NSSortDescriptor,例如:
NSSortDescriptor *optionTypeDescriptor = [[NSSortDescriptor alloc] initWithKey:@"optionType" ascending:YES selector:nil];
NSArray *sortDescriptors = [NSArray arrayWithObjects:optionTypeDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[optionTypeDescriptor release];