使用枚举定义四个选项,例如:
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];