NSPredicates e doppi relazioni con-n
-
16-09-2019 - |
Domanda
Ho un'entità Core Data chiamato Album; un album ha una relazione con le entità canzone (chiamati canzoni), e ogni canzone ha un conteggio arbitraria di entità Tag (in una proprietà tag), i tag avere un nome. Ora voglio verificare se una qualsiasi delle canzoni in un album contiene un tag; utilizzando un unico NSPredicate.
Un idee che mi venivano in mente era:
[NSPredicate predicateWithFormat: @"ANY (ANY songs).tags LIKE %@", someTagName];
Ma questo causa un errore in fase di esecuzione ( "Impossibile analizzare la stringa di formato"). Ho provato diverse varianti, senza successo.
Esiste un modo per fare questo?
Soluzione
Penso che si desidera
[NSPredicate predicateWithFormat:@"ANY songs.@unionOfSets.tags LIKE %@", someTagName]
Controlla la sezione valore-chiave Programming Guide su set e operatori di matrice .
Altri suggerimenti
Solo un pensiero, ma forse come non è disponibile su iPhone? So che ho avuto un momento difficile con TRA, che non sembra funzionare.
Quindi, un tag non ha una relazione molti-a-molti con le canzoni? Se è stato modellato in questo modo, ottenendo le canzoni per un tag sarebbe solo comportare l'accesso ai tag.songs proprietà. Il modo in cui lo avete modellata, sembra che i tag possono essere duplicati per ogni brano (che può essere più che bene nel vostro app).