Pau*_*aul 4 entities core-data nsmanagedobject
我想了解更多核心数据,为什么我们"获取"并搜索实体而实体是"内部"托管对象?例如 :
NSManagedObjectContext *moc = [self managedObjectContext];
NSEntityDescription *entityDescription =
[NSEntityDescription entityForName:@"Employee" inManagedObjectContext:moc];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
Run Code Online (Sandbox Code Playgroud)
另外,持久对象存储包含什么?如果我理解,持久对象存储从sqlite文件中获取数据,但后来有点困惑,是:一个实体,对于一个持久对象存储,对于sqlite文件中的一个数据?
谢谢你的回答
保罗
Mar*_*ton 14
基本上这里有5个组件.持久性存储协调器,托管对象上下文,托管对象模型,实体和托管对象.它们共同提供了一个对象图管理系统(请注意,Core Data 不是一个ORM,因此它不会以这种方式来考虑它).下面是CoreData中与它们交互的组件和各种其他类的描述
NSPersistentStoreCoordinator - 它处理从磁盘加载数据和从磁盘加载数据.它涉及各种商店(NSPersistentStore).包含的商店类型是二进制,XML和SQLite.您可以编写自己的商店(使用NSAtomicStore和NSIncrementalStore类),例如,如果您有自己的文件类型(理论上,如果您愿意,您可以编写商店来打开Word或Photoshop文件)NSEntityDescription - 实体可以被认为是托管对象的"类".它定义了托管对象应具有的任何attributes(NSAttributeDescription),relationships(NSRelationshipDescription)和fetched属性(NSFetchedPropertyDescription),以及其他属性,例如NSManagedObject应该使用的子类NSManagedObjectContext - 这是内存中的"便笺簿".它是您查询对象(使用NSFetchRequests),创建对象,删除对象等的地方.您可以拥有多个上下文,并在不保存的情况下抛弃一个上下文以丢弃您不再需要的任何更改.NSManagedObject - 核心数据的核心单位.这些是保存数据的模型对象.您可以在它们上设置属性,关系等.NSManagedObjectModel - 这表示用于数据的数据模型,通常在Xcode中创建的.mom文件中定义.这是存储所有实体的地方.这几乎就是整个核心数据.还有一些其他类用于执行迁移和合并
| 归档时间: |
|
| 查看次数: |
3112 次 |
| 最近记录: |