2015-12-07 16 views
5

Ho la seguente domanda sul mio Realm banca datiPerché sto ricevendo "'Le operazioni di aggregazione possono essere utilizzate solo su proprietà RLMArray'"?

realm.objects(Event) 
    .filter("ANY presentation.speakers.lastName CONTAINS [c]%@", searchTerm) 

Purtroppo non funziona, sto ottenendo il seguente errore

'predicato non valido', la ragione: 'operazioni di aggregazione possono essere utilizzate solo su RLMArray proprietà

presentation è un'entità opzionale definita come questo su Event classe

public dynamic var presentation : Presentation? 

speakers è un List<PresentationSpeakers> definita come questo su presentazione

public let speakers = List<PresentationSpeaker>() 

mia sensazione è che ANY deve operare direttamente su una collezione, ma speakers non è una proprietà diretta di Event.

Cosa c'è di sbagliato nella mia query e come posso implementarlo correttamente?

+0

Questo è un po 'tardi, ma Realm ora supporta avere esplicitamente un "ANY" parola chiave ora: https: // github.com/realm/realm-cocoa/pull/3216 – jpsim

+0

@jpsim Un po 'tardi per lui, ma non per me;) – Kheldar

risposta

3

Dal presentation è un rapporto a-uno, non c'è bisogno di scrivere ANY nella query:

realm.objects(Event) 
    .filter("presentation.speakers.lastName CONTAINS [c]%@", searchTerm) 

Il ANY è implicita per la proprietà speakers perché è un percorso chiave nidificato. Per specificare qualcosa di diverso ANY, si può usare un modificatore su speakers come questo:

realm.objects(Event) 
    .filter("presentation.speakers[FIRST].lastName CONTAINS [c]%@", searchTerm) 

Tuttavia, Realm non supporta questo tipo di interrogazione ancora.

Per ulteriori informazioni sui predicati e quelli che sono di supporto da Realm, vedi scheda predicato imbroglio del Reame: https://realm.io/news/nspredicate-cheatsheet/

+1

Si scopre che il predicato che hai condiviso è valido, ma che Realm non lo supporta al momento. Ho appena presentato un problema su GitHub sul repository di Realm: https://github.com/realm/realm-cocoa/issues/2955. Grazie per aver segnalato questo! – jpsim

+0

Perfetto. Grazie :) –

Problemi correlati