Sto cercando di ordinare un array come disposto in the accepted answer to this question, ma sto correndo nel problema che Isuru menziona nei commenti su questo risposta. Vale a dire, il codice che dovrebbe ordinare l'array per attributo "data" dell'entità porta la denuncia del compilatore "non riusciva a trovare membro 'data'"Come ordinare un array rapido contenente istanze di sottoclasse NSManagedObject di un valore di attributo (data)
Qui è la sottoclasse NSManagedObject descrivendo l'entità:
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;
}
}
E ecco il codice che cerca di ordinare l'array:
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
}()
si noti che nella seconda parte di tale codice, sono in grado di accedere e accedere alla proprietà "date" per una delle voci, e il compilatore doesn avere un problema con esso
La sintassi per l'ordinamento è corretta? C'è un altro problema con questo codice che non vedo?
Questo funziona perfettamente per piccole quantità di dati, ma quando si dispone di grandi quantità ci vuole un po 'di tempo per caricare. Esiste un metodo più efficiente? – nsij22
@ nsij22 dato che stiamo parlando di 'NSManagedObject's, allora questi oggetti provengono probabilmente da un archivio dati principale.In tal caso, la cosa più efficace da fare è probabilmente ordinare i dati tramite la richiesta di recupero dei dati di base. Dai un'occhiata a 'NSFetchRequest.sortDescriptors': https://developer.apple.com/library/mac/documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/index.html#//apple_ref/occ/instp/NSFetchRequest/ sortDescriptors –