द्वारा NSManagedObject सबक्लास के उदाहरण वाले एक स्विफ्ट सरणी को सॉर्ट कैसे करूं, मैं the accepted answer to this question में रखे गए सरणी को सॉर्ट करने का प्रयास कर रहा हूं, लेकिन उस समस्या में भाग रहा हूं जिस पर इसुरु ने टिप्पणियों में उल्लेख किया है जवाब।मैं एक विशेषता मूल्य (दिनांक)
import Foundation
import CoreData
@objc(Entry)
class Entry: NSManagedObject {
@NSManaged var date: NSDate
@NSManaged var reflections: AnyObject
@NSManaged var contactComment: NSSet
@NSManaged var person: NSSet
override func awakeFromInsert() {
let now:NSDate = NSDate()
self.date = now;
}
}
और: अर्थात्, कोड जो इकाई का "अब तक" विशेषता के आधार सरणी सॉर्ट चाहिए NSManagedObject उपवर्ग इकाई का वर्णन संकलक शिकायत लाता है "सदस्य नहीं पा सके 'तारीख'"
यहाँ
lazy var entries:[Entry] = {
var days:[Entry] = self.managedObjectContext!.requestEntity("Entry")as [Entry]
days.sort({$0.date < $1.date})
var today:Entry = days.last!
println(today.date)
return days
}()
ध्यान दें कि कि कोड के उत्तरार्द्ध में, मैं प्रविष्टियों में से एक के लिए पहुँच सकते हैं और "तिथि" संपत्ति लॉग इन करने में सक्षम हूँ, और संकलक नहीं करता है: यहाँ कोड है जो सरणी सॉर्ट करने के लिए कोशिश करता है इसके साथ कोई समस्या नहीं है।
क्या मेरा सिंटैक्स सही क्रमबद्ध करने के लिए है? क्या इस कोड के साथ कोई और मुद्दा है जिसे मैं नहीं देख रहा हूं?
यह डेटा की छोटी मात्रा के लिए पूरी तरह से काम करता है लेकिन जब आपके पास बड़ी मात्रा में लोड होने में कुछ समय लगता है। क्या एक और अधिक कुशल विधि है? – nsij22
@ nsij22 क्योंकि हम यहां 'एनएसएमएनेज ऑब्जेक्ट' की बात कर रहे हैं, तो वे ऑब्जेक्ट्स कोर डेटा स्टोर से आ रहे हैं।उस स्थिति में, संभवतः कोर डेटा लाने के अनुरोध के माध्यम से डेटा को सॉर्ट करना सबसे प्रभावी काम है। 'NSFetchRequest.sortDescriptors' पर एक नज़र डालें: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/index.html#//apple_ref/occ/instp/NSFetchRequest/ sortDescriptors –