我已經使用CoreData將數據保存到數據庫中。我需要按照保存的順序從我的表中獲取數據。在桌子內部,按Z_PK - 隱藏的CoreData鍵進行排序。我如何創建這樣的排序描述符。如果我使用沒有排序描述符的提取請求,我的數據對象的順序錯誤。iOS從CoreData中獲取按主鍵排序的對象
1
A
回答
6
核心數據框架未公開的任何內容都是實現細節。 Z_PK
存在並且目前適合您的目的的事實不能被依賴。
如果創建/保存順序對您的模型很重要,那麼它應該包含在您的模型中。除此之外沒有其他的東西。
4
在覈心數據框架中沒有合適的方法來按主鍵排序對象,但我認爲我們可以使用objectID作爲主鍵並按objectID排序。對象ID特定對象總是會增加。因此,你可以使用下面的方法
/*!
@param <NSManagedObject> array
@return <NSManagedObject> sortedarray
*/
+ (NSArray *) sortManagedObjectArrayByObjectID:(NSArray *) array {
NSArray *compareResult = [array sortedArrayUsingComparator:^NSComparisonResult(NSManagedObject *obj1, NSManagedObject *obj2) {
NSString *s = [obj1.objectID.URIRepresentation lastPathComponent];
NSString *r = [obj2.objectID.URIRepresentation lastPathComponent];
return [s compare:r];
}];
return compareResult;
}
希望這將有助於
相關問題
- 1. iOS - 如何排序從CoreData獲取的託管對象?
- 2. 按對象排序NSMutableDictionary鍵?
- 3. 按主鍵排序
- 4. ios - 在CoreData中排序獲取的屬性
- 5. 如何從coredata獲取min-id對象?
- 6. 使用NSDate從Coredata獲取對象
- 7. 從對象獲取對象的鍵值
- 8. HQL:獲取對象的主鍵
- 9. Javascript對象按鍵排序本身
- 10. CoffeeScript按鍵排序對象數組
- 11. 按鍵排序XML對象php
- 12. 在coredata中獲取關係對象
- 13. RestKit + CoreData:從CoreData緩存中排除某些對象
- 14. 按主鍵以外的字段獲取對象
- 15. 排序CoreData對象使用枚舉
- 16. CoreData和使用對象從主managedObjectContext
- 17. 獲取主鍵列Zend_Db_Table_Rowset對象
- 18. CoreData(MagicalRecord)獲取已保存的對象
- 19. CoreData獲取所有相關的對象
- 20. 按鍵值對Javascript中的對象數組排序
- 21. 如何從CoreData中獲取完整的對象(不是錯誤)?
- 22. CoreData:從未保存的上下文中獲取對象
- 23. CoreData排序按日期
- 24. coredata按關係數排序
- 25. 從對象數組中獲取鍵值
- 26. iOS中的孤兒對象CoreData
- 27. 按子詞典的值排序,然後按主鍵排序
- 28. 應用程序崩潰在coredata中的對象ID爲它的主鍵字段
- 29. 對象獲取排序內的NamedNodeMap
- 30. 試圖從對象值中獲取排序後的數組
你爲什麼不希望使用一種描述與您的讀取請求? – RunLoop
這是敏感數據。任何種類的描述符更改順序:( – selfsx
看到這個問題: http://stackoverflow.com/questions/10153335/iphone-core-data-fetch-primary-key – iMemon