2014-10-15 7 views
0

Я использую версию рамочной платформы realm.io 0.86.3.Использование ключевых слов: CONTAINS, BEGINSWITH, ENDSWITH на многоуровневых ключевых дорожках в Realm.io

Вот что мой объект выглядит следующим образом:

RLMArray <0x7fd1f3642a50> (
[0] Product { 
    identifier = 4; 
    overview = test; 
    desc = test; 
    reference = AB-123; 
    category = Category { 
     identifier = 2; 
     name = Telescopic Arm; 
     level = 1-1; 
     parent = Category { 
      identifier = 1; 
      name = Arm; 
      level = 1; 
      parent = (null); 
     }; 
    }; 
} 
) 

Все выглядит прекрасно до сих пор, но когда я пытаюсь запроса:

RLMArray *products = [GEProduct objectsWhere:@"category.name contains 'telescopic'"]; 

Я получаю:

uncaught exception 'Invalid type', reason: 'Predicate 'CONTAINS' is not supported' 

Что мне не хватает?

Заранее благодарим за ваше время.

ответ

4

Вы получаете это исключение, потому что не поддерживаются многоуровневые запросы к ключам, такие как CONTAINS, BEGINSWITH, ENDSWITH, а также запросы, не учитывающие регистр, на многоуровневых ключах. Мы работаем над этой функцией, но пока ее не имеем.

Эти ключевые слова которые поддерживаются с запросами прямой собственности, хотя, так что вы можете повторно работать ваш запрос выглядеть следующим образом:

RLMArray *categories = [GECategory objectsWhere:@"name contains 'telescopic'"]; 
RLMArray *products = [GEProduct objectsWhere:@"category IN %@", categories]; 

Я знаю, что это не шикарно, но пока мы не имеем поддержки более сложных многоуровневые запросы на ключевые слова, которые должны работать.

UPDATE (10-27-2014)

По Realm v0.88.0, многоуровневые запросы, как Ключевой путь нечувствительны к регистру, СОДЕРЖИТ, BEGINSWITH, EndsWith поддерживаются настолько оригинальна попытка сайт теперь работает:

[GEProduct objectsWhere:@"category.name contains 'telescopic'"]; 

Realm v0.88.0 будет выпущен в ближайшее время.

+0

Почему мы не можем использовать объект категорий (RLMArray) для запроса продукта, так как RLMArray реализует протокол NSFastEnumeration? – nstefan

+0

ДА! Я только что отредактировал свой ответ, чтобы отразить это. Недавно Томас из Королевства поддержал это. – jpsim

+0

О, ладно, спасибо за подтверждение. Это немного упрощает процесс. – nstefan

 Смежные вопросы

  • Нет связанных вопросов^_^