这似乎非常微不足道,我不应该问,但我没有看到它有任何东西。如果我将一组对象(或“set”)保存到CoreData中,为什么它总是将其按顺序返回?没有特定的顺序给每个数组(用户列表),所以我不相信会有任何正则表达式或排序描述符。CoreData抓取错误
回答
为了让用户定义的排序,你可以在你的数据模型添加一个整数属性(例如“中将sortOrder”)到相应的实体。您可以使用此属性通过在用户更改列表中的顺序时更新管理对象中的属性来手动跟踪排序顺序。然后,您将能够执行提取请求,并根据“sortOrder”属性指定排序描述符,以按原始用户定义顺序获取从提取中返回的结果。
如果您使用的是iOS 5或10.7以上版本,则可以创建您的模型,使其具有有序的多对多关系。请参阅iOS 5.0/OS X 10.7 release notes。在界面生成器中,选择相关关系并检查“已排序”复选框。
NSSet
没有保证的顺序。您需要NSArray
才能找到特定元素或控制返回集的顺序。
它在[docs](https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSSet_Class/Reference/Reference.html)中非常清楚。排序描述符在这种情况下非常常见。 – 2013-03-12 02:25:32
这是在文档中指出,但没有描述符来排序是问题。安德鲁的答案就是我要做的。 – random 2013-03-12 17:44:20
因为NSSet
是一个无序集合。您可以通过sortedArrayUsingDescriptors:
将任何排序描述符应用于您的NSSet
,这将返回排序结果的NSArray
。
- 1. 网络抓取错误
- 2. 位置抓取错误Ios
- 3. CoreData:错误返回nil试图获取
- 4. CoreData关系错误?
- 5. 未知命令:抓取错误
- 6. Backbone.js Collection的抓取调用错误
- 7. 错误:在抓取时连接ETIMEDOUT
- 8. LXML网页抓取,格式错误html
- 9. 网页抓取(以R) - readHTMLTable错误
- 10. 没有尝试错误的抓取
- 11. 抓取错误数据的MySQL
- 12. iPhone Coredata保存错误
- 13. CoreData 1570错误代码
- 14. Coredata:约束中的错误
- 15. CoreData删除保存错误
- 16. 错误在抓取(键):内部错误-3 R_decompress1
- 17. Google抓取错误 - 无法访问的错误
- 18. 网页抓取使用BeauitifulSoup错误:[错误10061]
- 19. WKWebView抓HTTP错误代码
- 20. 使用R从抓取数据从covers.com获取错误
- 21. 如何从CoreData中获取完整的对象(不是错误)?
- 22. NSFetchedResultsController使用CoreData时发生致命错误(尝试获取)
- 23. Scrapy:抓取但未抓取
- 24. 需要快速帮助 - CoreData错误
- 25. 莫名其妙CoreData保存错误
- 26. 初始CoreData对象的类型错误。
- 27. 使用CoreData与iCloud的怪异错误
- 28. CoreData批量请求错误Swift
- 29. CoreData自动轻量级迁移错误
- 30. CoreData NSFetchRequest错误Swift 3中的NSInvalidArgumentException
为什么要使用'sortOrder'属性,并且只是在执行提取请求时需要排序? – 2013-03-12 04:03:47
原始海报表示数据没有顺序(例如,它不按时间顺序排列,不按字母顺序等),因为用户在添加和重新排列项目时定义了列表的顺序。添加sortOrder属性允许将订单保存在模型中,然后在用户通过表视图或其他方式操纵订单时保持最新状态。然后可以在NSSortDescriptor中使用sortOrder属性来按照用户先前设置的相同顺序对项目进行排序。 – Andrew 2013-03-12 06:15:22
@安德鲁感谢您的帮助。我希望我不会诉诸添加排序属性到所有我的数据库实体,但我想这是唯一的方法:( – random 2013-03-12 17:45:03