【发布时间】:2026-01-13 04:50:01
【问题描述】:
我刚刚开始学习如何在 iOS 上实现 Core Data Model。在一些关于如何在实体之间使用一对一关系存储和检索数据的基本教程之后,我现在正在尝试实现一对多关系。我的数据模型由两个实体组成,它们各自的类定义如下:
Restaurant:
@interface Restaurant :NSObject
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSMutableArray *user_reviews; /* One to Many Relation to Review Entity*/
@end
Review:
@interface Review : NSObject
@property (nonatomic, strong) NSString *rating;
@property (nonatomic, strong) NSString *review_text;
@property (nonatomic, strong) User *user;
@end
我发现了使用 NSMutableSet 插入的类似问题,但我无法为 NSMutable Array 实现相同的问题。
目前我的插入代码如下所示:
NSManagedObjectContext *context = [self managedObjectContext];
Restaurant *rest = [NSEntityDescription insertNewObjectForEntityForName:@"Restaurant" inManagedObjectContext:context];
rest.name = restaurant.name;
我通过 JSON 检索 Restaurant 及其评论的数据,并将它们存储在临时类中,然后将它们保存到 CORE 数据库。 如何插入具有一对多关系的此类数据?
编辑: 目前我以将 user_review 属性定义为
的类的形式接收数据NSMutableArray *user_reviews;
我正在尝试实现同一个类以插入核心数据模型。 但核心数据模型使用 NSSet 而不是 NSMutableArray。 一种粗暴的方法是复制所有具有相同属性的类,除了不使用 NSMutableArray,我将其更改为 NSSet。 但这会产生大量的冗余代码。难道不应该有更有效的方法吗?
【问题讨论】:
标签: ios objective-c cocoa-touch core-data relational-database