Core data 编译的核心数据管理对象模型:从该模型及其对应的数据库中获取最大信息

Core data 编译的核心数据管理对象模型:从该模型及其对应的数据库中获取最大信息,core-data,nsmanagedobject,nsmanagedobjectcontext,nssortdescriptor,Core Data,Nsmanagedobject,Nsmanagedobjectcontext,Nssortdescriptor,我是Objective-C的新手;我在我的书或网上找不到任何解决办法 我的问题:在没有源代码的情况下,使用已编译的.mom和SQLite db最有效、最快的方法是什么 详细信息: 我正在尝试将我的小应用程序连接到另一个应用程序的数据库,并使用它的部分数据。但这项任务很困难,因为该应用程序没有SDK 该应用程序有一个已编译的.mom文件和一个SQLite数据库 我成功地通过编程(不使用IB)使用.mom连接到db,并且可以设法获取实体,将数据填充到我重新创建的对象中,等等。 但我每一步都在猜测、尝

我是Objective-C的新手;我在我的书或网上找不到任何解决办法

我的问题:在没有源代码的情况下,使用已编译的.mom和SQLite db最有效、最快的方法是什么

详细信息: 我正在尝试将我的小应用程序连接到另一个应用程序的数据库,并使用它的部分数据。但这项任务很困难,因为该应用程序没有SDK

该应用程序有一个已编译的.mom文件和一个SQLite数据库

我成功地通过编程(不使用IB)使用.mom连接到db,并且可以设法获取实体,将数据填充到我重新创建的对象中,等等。 但我每一步都在猜测、尝试和犯错。因此,开发需要大量时间,并且容易出错。 剖析最困难的任务是通过中间表处理许多关系

例如:实体“Books”与“Authors”有关系。由于作者的顺序很重要,所以有一个中间表“AuthorsNumber”,其中包含以下字段:编号、作者、书籍;字段“number”决定了作者的确切顺序,因为他们应该出现在任何地方(很重要!)

我最终设法使用NSSortDescriptor创建了一个有序的作者数组,但我花了整整一周的时间去寻找和猜测如何做到这一点

你能建议更有效的方法来处理我妈妈而不是我用的方法吗


谢谢

如果您复制
.mom
文件,并将扩展名更改为
.plist
,您将得到一个纯文本、人类可读的plist文件,您可以相对轻松地解开它

  • 创建一个空模型文件,比如Example.exdatamodeld

  • 选择它

  • 在Xcode编辑器->导入并选择mom文件

  • 您可以在mom文件中查看数据模型


  • 哇,谢谢。。。.xcdatamodel文件是一个包含.plist文件的文件夹;但我并不怀疑所谓的“编译的”.mom文件也会是相同的。我以为它是某种二进制的。。。尽管这两个文件的格式很难解析并映射到实体。我发现将.mom文件添加到我的托管对象上下文中,然后枚举实体、属性和关系更方便,比如this://... 连接到managedObjectContext的代码…//int i//用于枚举实体NSEntityDescription*entity=[entities objectAtIndex:i];NSDictionary*attrs=[entity attributesByName]//枚举属性的好方法(NSString*key in attrs){NSAttributedDescription*myAttr=[attrs objectForKey:key];NSLog(@“=>Attr:%@“,[myAttr name]);}//枚举关系的好方法NSDictionary*rels=[entity relationshipsByName];对于(NSString*key-in-rels){NSAttributeDescription*myRel=[rels-objectForKey:key];NSLog(@“=>Rel:%@“,[myRel-name]);}并且如果您只向NSLog提供myAttr和myRel(即没有“name”消息),它将打印更多信息,例如变量类型等,我已经找到了模型的结构,并创建了几个使用其中两个实体的类;但我不确定如何在GUI中显示这些内容,以及如何使它们保持同步。也许我应该使用NSArrayController,它会自动完成所有操作?你可能想就最后一个问题提出另一个问题。它涵盖了很多领域。