2015-12-07 13 views
5

Mam następujące kwerendy w mojej bazy danych RealmDlaczego otrzymuję "" Operacje zagregowane mogą być używane tylko w właściwościach RLMArray ""?

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

Niestety to nie działa, otrzymuję następujący błąd

„Nieprawidłowy predykat”, powód: „Operacje zbiorcze mogą być stosowane tylko na RLMArray właściwości

presentation jest opcjonalna jednostka zdefiniowana tak na Event klasy

public dynamic var presentation : Presentation? 

speakers jest List<PresentationSpeakers> zdefiniowane tak po przedstawieniu

public let speakers = List<PresentationSpeaker>() 

Mam wrażenie, że ANY musi działać bezpośrednio nad kolekcją ale speakers nie jest bezpośrednią własnością Event.

Co jest nie tak z moim zapytaniem i jak mogę je poprawnie wdrożyć?

+0

To jest trochę późno, ale Realm teraz obsługuje wyraźnie posiadające „ANY” słowa kluczowego teraz: https: // github.com/realm/realm-cocoa/pull/3216 – jpsim

+0

@jpsim Trochę za późno dla niego, ale nie dla mnie;) – Kheldar

Odpowiedz

3

Od presentation jest relacją do jednego, nie ma potrzeby, aby napisać ANY w zapytaniu:

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

ANY jest niejawny dla właściwości speakers ponieważ jest zagnieżdżona keypath. Aby określić coś innego niż ANY, należałoby użyć modyfikatora na speakers tak:

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

Jednak Realm nie obsługuje tego rodzaju zapytania jeszcze.

Aby uzyskać więcej informacji na temat orzeczników, a które są wsparcie przez Realm patrz orzeczenie Ściągawka Realm za: https://realm.io/news/nspredicate-cheatsheet/

+1

Okazuje się, że predykat, który podzieliłeś, jest ważny, ale to Królestwo nie obsługuje go na za chwilę. Właśnie napisałem problem z GitHub na repozytorium Realm: https://github.com/realm/realm-cocoa/issues/2955. Dzięki za zgłoszenie tego! – jpsim

+0

Działa perfekcyjnie. Dzięki :) –

Powiązane problemy