Mat*_*hew 7 cocoa-touch objective-c
我刚刚开始在iPhone SDK上使用Core Data,我正在寻找保存有序列表,类似于数组.但是,核心数据中的关系在检索时表示为集合.这使得难以保存对象的定位顺序.
一个很好的例子是当允许重新排序项目时表格视图中的数据项.一个简单的解决方案是在托管对象上包含索引属性.
考虑以下层次结构:
文档<-Many-to-many-> DataItem
不同的Document实例可以链接到同一个DataItem,每个Document可能引用一个或多个DataItem.因此,在DataItem中使用索引属性会导致该实例的可重用性降低,即您只能保存一个Document实例的索引.
关于如何在表视图中整齐地排列层次结构但是仍然保持每个DataItem实例可重用的任何想法?谢谢!
Ben*_*ell 15
从OS X Lion(10.7)开始,现在更直接了.Cocoa现在支持与Core Data兼容的新NSOrderedSet类.此功能在iOS中也可用,但需要iOS 5.0或更高版本.这意味着如果您希望应用程序向后兼容早期版本的iOS或OS X,则无法使用此功能.
要获得订购,您只需打开Core Data模型编辑器,选择多对多关系并选中"已订购"复选框.
您可以使用其他实体来执行此操作,例如: alt text http://gallery.me.com/davedelong/100084/Screenshot-20on-202009-07-04-20at-2010-34-56-20AM/web.jpg ?版本= 12467253090001
Document可以通过使用以下内容找到它的实际dataItem:
NSSet * documentDataItems = [[document orderedDataItems] valueForKey:@"dataItem"];
Run Code Online (Sandbox Code Playgroud)
同样,DataItem可以通过执行相同的操作找到所有文档:
NSSet * dataItemDocuments = [[dataItem orderedPositions] valueForKey:@"document"];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6756 次 |
最近记录: |