我正在尝试使用 Core Data 和 Objective-C 创建一个简单的数据库记录表。我知道 NSManagedObject 的实例是我存储这些记录的地方,但是我可以在单个 NSManagedObject 中存储多少个实体记录?如果只有一个,那么如何声明具有唯一标识符的 NSManagedObjects 的多个实例,在本例中为“entityObj”,该标识符必须由用户在运行时提供?
在此示例中,MyEntity 包含三个 NSString 属性(城市、县、名称)。这是我声明 NSManagedObject 的方式。
NSManagedObject *entityObj = [NSEntityDescription insertNewObjectForEntityForName:@"MyEntity" inManagedObjectContext:myContext];
// fill the entityObj with data
[entityObj setValue:@"Edmonton" forKey:@"city"];
[entityObj setValue:@"Canada" forKey:@"country"];
[entityObj setValue:@"Bill" forKey:@"name"];
这存储了一条数据记录,但我需要存储更多数据。如何在运行时指定“entityObj”的值?有没有一种方法可以将多个记录存储在单个 NSManagedObject 中?直觉上,我想我也许能够使我的 NSManagedObject 成为 MyEntity 记录的数组。 `
NSManagedObject
的每个实例都保存一个“记录”的数据。您可以根据需要在 NSManagedObject
中存储任意数量的 ManagedObjectContext
实例。
Core Data 中的最佳实践是为每种数据定义
NSManagedObject
子类,以允许类型检查并生成访问器。