Objective c iOS上的核心数据替代方案
我一直在使用核心数据开发几个iOS应用程序,它是一个非常好的框架。然而,我遇到了一个问题,即我们或多或少在多个平台上分布了对象(同步)。web/数据库服务器后端和移动设备 尽管到目前为止这还不是一个问题,但核心数据所使用的数据模型的静态特性让我有点困惑。基本上,所请求的是一个动态表单系统,通过该系统,可以在服务器上创建表单并将其传播到设备。我了解使用一组表执行此操作的技术,这些表包括:Objective c iOS上的核心数据替代方案,objective-c,ios,core-data,orm,object-graph,Objective C,Ios,Core Data,Orm,Object Graph,我一直在使用核心数据开发几个iOS应用程序,它是一个非常好的框架。然而,我遇到了一个问题,即我们或多或少在多个平台上分布了对象(同步)。web/数据库服务器后端和移动设备 尽管到目前为止这还不是一个问题,但核心数据所使用的数据模型的静态特性让我有点困惑。基本上,所请求的是一个动态表单系统,通过该系统,可以在服务器上创建表单并将其传播到设备。我了解使用一组表执行此操作的技术,这些表包括: 表格 字段表 表单表的实例 实例值表 把一切联系起来。然而,我想知道的是,是否有一个替代核心数据的系统(上
- 表格
- 字段表
- 表单表的实例
- 实例值表
如有任何建议,我们将不胜感激 我可能会推荐为表单和字段使用特定的表/实体,为每个表单和字段的实例使用实体。如果ORM模式将频繁发生,那么尝试动态操作它通常不是一个好主意 但是,如果模式只是不经常更改,则可以使用核心数据进行更改。在创建
NSManagedObjectContext
之前,您可以通过编程方式创建和/或操作NSManagedObjectModel
。您还可以创建迁移逻辑,以便在更新模型并需要重新创建上下文和存储时,可以保留存储在旧模型中的数据
这些其他SO帖子可能会有所帮助:
firstName
,或者(3)两者兼而有之
为表单建模而设计的数据模型将具有如下实体:
Form{
name:string
fields<-->Field.form
}
Field{
width:number
height:number
xPos:number
yPos:number
label:sting
nextTab<-->Field.priorTab
priorTab<-->Field.nextTab
form<<-->Form.fields
}
表单{
名称:string
fieldsField.form
}
场{
宽度:数字
身高:多少
xPos:数量
yPos:编号
标签:sting
nextabfield.priorTab
priorTabField.nextTab
formAh我一直在寻找一些关于在运行时改变MOM的细节。感谢这些参考资料。事实上,我并不期望模型会经常改变-但是我只是记住了应用程序的可伸缩性(特别是在移动设备上)。我从doco猜测,一旦模型改变了(多亏了后台处理,在标准执行期间可能会发生这种情况),然后我必须重新加载持久性存储(以及迁移等)并重新初始化所有与数据库相关的内容。这是可行的,使用这种技术,我可以在平台之间共享数据模型。我将存储UI的信息,以及表单对象的实际数据布局。这里的主要问题是表单本身是动态的(每个客户端的后端是多个Tennet)因此,对象图会发生变化。我可以基于描述对象的固定表进行建模,也可以在运行时基于服务器动态构建对象模型。我希望为每个模板使用单独的表的原因是,我们最终可能会得到大量数据。我知道您的目的不是将核心数据视为数据库,而是性能从ce的角度来看,这是必须考虑的。听起来你可能真的想要基于文档的设计,而不是标准的核心数据堆栈。在文档设计中,每个文档都有自己的堆栈,“文档”实际上只是一个持久存储,只包含与一个逻辑文档关联的信息。在你的情况下,每个“文档”可能由两个存储区组成:一个用于UI表单的存储区和一个用于表单中显示的数据的存储区。如果每次都不一样,则没有设计或API需要将所有这些差异塞进一个大存储区。我知道这是针对iOS的,但请查看MacOS NSPersistentDocument类,以了解核心数据如何与文档一起工作ument architecture.hey@Dave这个怎么样?