Frage

Ich habe eine Core Data Entität namens Album; ein Album, hat eine Beziehung zu Song-Einheiten (genannt Lieder), und jeder Song hat eine beliebige Anzahl des Tag Einheiten (in einer Variablen-Eigenschaft), Tags haben einen Namen. Jetzt mag ich überprüfen, ob eines der Lieder in einem Album einen Tag enthält; unter Verwendung eines einzigen NSPredicate.

Eine Ideen, die in den Sinn kam, war:

[NSPredicate predicateWithFormat: @"ANY (ANY songs).tags LIKE %@", someTagName];

Aber das verursacht einen Fehler zur Laufzeit ( „Kann den Format-String parsen“). Ich habe versucht, verschiedene Variationen, ohne Erfolg.

Gibt es eine Möglichkeit, dies zu tun?

War es hilfreich?

Lösung

Ich glaube, Sie wollen

[NSPredicate predicateWithFormat:@"ANY songs.@unionOfSets.tags LIKE %@", someTagName]

Überprüfen Sie den Schlüsselwert-Programmierhandbuch Abschnitt heraus gesetzt und Array-Operatoren .

Andere Tipps

Nur ein Gedanke, aber vielleicht LIKE ist nicht auf dem iPhone verfügbar? Ich weiß, dass ich mit einer harten Zeit hatte BETWEEN, die scheint nicht zu funktionieren.

So ein Tag nicht über eine viele-zu-viele-Beziehung mit Liedern? Wenn es auf diese Weise modelliert wurde, für einen Tag, um die Songs bekommen würde bedeuten, nur die Eigenschaft tag.songs zugreifen. Die Art und Weise Sie es modelliert haben, so scheint es, dass die Tags für jeden Song kopiert werden können (die in Ihrer Anwendung nur gut sein kann).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top