Je veux obtenir itmes, en fonction d'une propriété sur les éléments de référence.Trier les éléments en fonction de la référence to-many
comme j'ai quelques boîtes et tous ont des articles et je veux voir les boîtes triées par titre (a, b, c, d, e) mais les boîtes avec les éléments finis d'abord.
-
boîte
- "a" (5 objets) boîte
- "c" (2 objets) boîte
- "e" (8 ouvrages)
- zone "B" (0 produits)
- box "d" (0 items)
J'ai essayé avec la sous-requête mais je n'ai pas obtenu les bons résultats.
Je souhaite utiliser NSFetchResultController en raison de mises à jour en cours d'utilisation.
let sortDescriptors = [
NSSortDescriptor(key: "(SUBQUERY(items,$item,$item.finished == 0)[email protected] > 0)", ascending: false),
NSSortDescriptor(key: "title", ascending: true, selector: #selector(NSString.localizedCaseInsensitiveCompare))
]
Est-ce que quelqu'un a une idée comment résoudre ce problème?
J'ai essayé aussi d'utiliser le sectionNameKeyPath mais avec
let sectionKeyPath = "((items.finished == 0)[email protected] > 0)"
j'ai obtenu "Message du débogueur: classés en raison du problème de mémoire"
code:
extension ManagedBox {
@nonobjc open override class func fetchRequest() -> NSFetchRequest<NSFetchRequestResult> {
return NSFetchRequest<ManagedBox>(entityName: "ManagedBox") as! NSFetchRequest<NSFetchRequestResult>;
}
@NSManaged public var paused: Bool
@NSManaged public var title: String?
@NSManaged public var items: NSSet?
}
extension ManagedItem {
@nonobjc open override class func fetchRequest() -> NSFetchRequest<NSFetchRequestResult> {
return NSFetchRequest<ManagedItem>(entityName: "ManagedItem") as! NSFetchRequest<NSFetchRequestResult>;
}
@NSManaged public var finished: Bool
@NSManaged public var title: String?
@NSManaged var box: ManagedBox?
}
S'il vous plaît code postal pour votre classe de boîte et comment vous implémentez le titre ou les éléments –