跨多个实体获取请求

时间:2014-08-04 08:55:55

标签: ios objective-c iphone core-data nsfetchrequest

在我的应用程序中,我构建了一个Web服务来处理本地化而不是苹果的默认机制。

Web服务返回3个实体

@interface MPLanguageCode : NSManagedObject

@property (nonatomic, retain) NSDate * createdAt;
@property (nonatomic, retain) NSString * objectId;
@property (nonatomic, retain) NSNumber * syncStatus;
@property (nonatomic, retain) NSDate * updatedAt;
@property (nonatomic, retain) NSNumber * lcID;
@property (nonatomic, retain) NSString * lcValue;

@interface MPTranslationKey : NSManagedObject

@property (nonatomic, retain) NSDate * createdAt;
@property (nonatomic, retain) NSString * objectId;
@property (nonatomic, retain) NSNumber * syncStatus;
@property (nonatomic, retain) NSDate * updatedAt;
@property (nonatomic, retain) NSNumber * keyID;
@property (nonatomic, retain) NSString * keyValue;

@interface MPTranslationValue : NSManagedObject

@property (nonatomic, retain) NSDate * createdAt;
@property (nonatomic, retain) NSNumber * keyID;
@property (nonatomic, retain) NSNumber * lcId;
@property (nonatomic, retain) NSString * objectId;
@property (nonatomic, retain) NSNumber * syncStatus;
@property (nonatomic, retain) NSString * translation;
@property (nonatomic, retain) NSDate * updatedAt;

三个实体之间绝对没有关系,但是当我需要我的本地化的翻译价值时,我需要有效地查询这三个实体。

在示例中:假设我知道设备区域设置为“en”,并且我需要关键字“home_button”的英文翻译。由于MPTranslationValue包含区域设置ID和密钥ID,因此我不能仅使用该实体来获取实际的转换。相反,我需要一种方法来获取“en”的区域设置ID获取“home_button”的keyID,并使用它们来搜索MPTranslationValue实体中的实际翻译。如果我使用SQL,我可以使用连接来获得一行查询结果。但是在核心数据中,我似乎找不到完美的方法来做到这一点,而不会分别从所有3个实体获取请求。

解决这个问题的最佳方法是什么?

0 个答案:

没有答案