這似乎非常微不足道,我不應該問,但我沒有看到它有任何東西。如果我將一組對象(或「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. Coredata抓取概念
- 2. Groovy jenkins抓取錯誤
- 3. 網絡抓取錯誤
- 4. 位置抓取錯誤Ios
- 5. Google adsense doubleclick抓取錯誤
- 6. coredata錯誤?
- 7. coredata元數據提取錯誤
- 8. CoreData:錯誤返回nil試圖獲取
- 9. CoreData保存錯誤
- 10. CoreData關係錯誤?
- 11. CoreData UINavigationController managedObjectContext錯誤
- 12. 我想抓取多行,在抓取行中有錯誤?
- 13. 抓CORS錯誤
- 14. 錯誤呼叫/抓取WCF服務
- 15. LXML網頁抓取,格式錯誤html
- 16. 沒有嘗試錯誤的抓取
- 17. Python抓取:403和503錯誤
- 18. Backbone.js Collection的抓取調用錯誤
- 19. 網頁抓取 - 錯誤發生
- 20. 在抓取asp.net頁面時EVENTVALIDATION錯誤
- 21. 抓取錯誤數據的MySQL
- 22. findall函數抓取錯誤信息
- 23. 未知命令:抓取錯誤
- 24. URL抓取斷言錯誤:2
- 25. Python網頁抓取返回錯誤
- 26. 網頁抓取(以R) - readHTMLTable錯誤
- 27. 抓住MySQL錯誤
- 28. 奇怪CoreData編譯錯誤
- 29. CoreData的UITableViewController managedObjectContext錯誤
- 30. CoreData錯誤而失敗
爲什麼要使用'sortOrder'屬性,並且只是在執行提取請求時需要排序? – 2013-03-12 04:03:47
原始海報表示數據沒有順序(例如,它不按時間順序排列,不按字母順序等),因爲用戶在添加和重新排列項目時定義了列表的順序。添加sortOrder屬性允許將訂單保存在模型中,然後在用戶通過表視圖或其他方式操縱訂單時保持最新狀態。然後可以在NSSortDescriptor中使用sortOrder屬性來按照用戶先前設置的相同順序對項目進行排序。 – Andrew 2013-03-12 06:15:22
@安德魯感謝您的幫助。我希望我不會訴諸添加排序屬性到所有我的數據庫實體,但我想這是唯一的方法:( – random 2013-03-12 17:45:03