Wenn Sie Categories
holen Sie werden eine Reihe von Category
Objekte erhalten. Jedes dieser Objekte hat eine Eigenschaft subcategory
, die ein Satz ist, der alle zugehörigen Objekte Subcategory
enthält. Und jedes dieser Objekte wird eine Eigenschaft haben, item
, die ein Satz ist, der alle Item
Objekte enthält, die zu diesem Subcategory
gehören. Die zugehörigen Objekte sind innerhalb der Objekte Category
und Subcategory
"verschachtelt".
Wenn Sie die Kategorien abrufen, müssen Sie kein Prädikat angeben, um die zugehörigen Objekte abzurufen. Sie werden automatisch abgerufen, sobald Sie auf die Eigenschaften subcategory
oder item
zugreifen. So zum Beispiel, wenn myCategory
ist ein Category
Objekt, das Sie geholt haben,
let mySubcategories = myCategory.subcategory
for subcat in mySubcategories {
print("\(subcat)")
}
jeder der zugehörigen Unterkategorien gedruckt werden soll.
Wenn diese Eigenschaften null sind, haben Sie möglicherweise noch keine Beziehungen hergestellt. Dies geschieht normalerweise, wenn Sie die Objekte zum ersten Mal erstellen. Erstellen Sie zum Beispiel, wenn Sie ein Subcategory
mit categoryName = "Badaue"
, könnte man die Beziehung mit dem Category
mit name = "Badaue"
wie folgt begründen:
let newSubcategory = ....
newSubcategory.categoryName = "Badaue"
let fetchCategory = NSFetchRequest(entityName: "Category")
fetchCategory.predicate = NSPredicate(format: "name == %@", newSubcategory.categoryName)
let categories = try! appDel.managedObjectContext.executeFetchRequest(fetchNote) as? [Category]
if (categories!.count > 0) {
let firstCategory = categories[0]
newSubCategory.category = firstCategory
} else {
// no existing Category with the correct name, so create one....
let newCategory = ....
// ... and then establish the relationship to the Subcategory
newSubCategory.category = newCategory
}
Was funktioniert nicht? – Koen
Bitte klären Sie, welche Entität Sie abzurufen versuchen - jeder Abruf liefert ein Array mit * entweder * Category-Objekten, * oder * Unterkategorie-Objekten, * oder * Objekt-Objekten, aber * nicht * einem Mix verschiedener Entitäten. – pbasdf
Sicher. Ich möchte die Category-Entität abrufen und Ergebnisse von Subcategory- und Item-Entitäten abrufen, für die beispielsweise das Attribut "categoryName" den Wert "Badaue" hat. –