iOS 用にローカライズされたスキーマに取り組んでいます。翻訳されたフィールドを持つことができるさまざまなエンティティがあるため、それぞれに対してTranslationエンティティを作成します。2 つのエンティティーの間には常に 1 対多の関係があり、将来的に新しい言語を追加できるようになり、Entity.translationsを介して翻訳にアクセスできます。ここまでは順調ですね。
Entity
EntityTranslation
1) まず、そのようなアプローチが良いかどうか知りたいです。純粋な SQL 環境で使用するソリューションなので、その道をたどることができると思います。
Entity.text
2)それから...私は(経由で)ユーザーに適切なテキストを表示するために使用したいと思いますNSLocale preferredLanguages
。translations
戻り値としてNSSet
、エンティティ モデルに属性を手動で追加し、ゲッターを変更するという 1 つのオプションがあります。
// Entity.h
@property (nonatomic, retain) NSString * text;
// Entity.m
@synthesize text;
- (NSString *) text
{
NSString *locale = [[NSLocale preferredLanguages] objectAtIndex:0];
NSSet *filteredTranslations = [self.translations filteredSetUsingPredicate: [NSPredicate predicateWithFormat:@"locale = %@", locale]];
EntityTranslation *translation = [[filteredTranslations allObjects] objectAtIndex:0];
return translation.text;
}
それは機能しますが、意味がありますか?パフォーマンスの問題はありますか? Fetched propertiesを使用して同様のことを行うことは可能ですか? 可能であるとのことですが、Xcode Core Dataエディターを使用して機能させることはできません...
ありがとう。