列挙を使用して、次の 4 つのオプションを定義します。
typedef enum _NoteOptionType {
kNoteOptionTypeOne,
kNoteOptionTypeTwo,
kNoteOptionTypeThree,
kNoteOptionTypeFour,
kNoteOptionTypes,
} NoteOptionType;
これらには 0 ~ 5 の番号が付けられます。
Core Data は整数をNSNumber
インスタンスとして格納します。おそらく、値に相当する値を格納するNote
と呼ばれるエンティティに属性を保持できます。optionType
NSNumber
NoteOptionType
NSNumber
これらは、たとえば のような方法でオプションに変換できます[NSNumber numberWithInt:kNoteOptionTypeOne]
。
NoteOptionType
a を文字列に変換して 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]);
フェッチでは、次のように、を使用NSNumber
して、コア データ ストアに格納した値を並べ替えの基準として使用できますNSSortDescriptor
。
NSSortDescriptor *optionTypeDescriptor = [[NSSortDescriptor alloc] initWithKey:@"optionType" ascending:YES selector:nil];
NSArray *sortDescriptors = [NSArray arrayWithObjects:optionTypeDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
[optionTypeDescriptor release];