2016-11-09 2 views
1

быстры, xcode8царство запрос тип даты?

Я сделал файл области действия с CSV импортер (https://github.com/realm/realm-cocoa-converter/tree/master/RealmConverter)

Это схема Realm файла:

birthday:string 
name : string 
age : int 

class people:object 
{ 
    dynamic var date = "" 
    dynamic var name = "" 
    dynamic var age = 0 
} 

let temp : people 

Я хочу запросить поле даты:

realm.object(self.people).filter("birthday >= 2016-01-01") // error! 

Если тип дня схемы схемы домена - строка, могу ли я запросить> = или между? Должен ли я изменить схему файла realm birthday: string -> birthday: NSDate?

+0

Я бы подумал, что вам нужна дата, хранящаяся как дата, а не строка, но тем не менее .. Ваш текущий фильтр не отображает дату в виде строки. Он должен иметь одинарные кавычки вокруг него, например '' birthday> = '2016-01-01' "'. Однако «> =» возможно, не работает со строкой, как описано в документации. Операторы сравнения ==, <=, <, > =,>,! = И BETWEEN поддерживаются для Int, Int8, Int16, Int32, Int64, Float, Double и типы свойств NSDate. Такие, как возраст == 45 – Michael

+0

спасибо. ответ так .. я должен изменить схему файла realm? должен ли я изменить источник конверсии какао? – ttoggaiman

+0

. Один из подходов состоит в том, чтобы иметь два свойства объекта, которые хранятся в области Realm как Date и одна вычисленная строка для импорта из CSV. Вычисленное свойство преобразует импортированную строку в дату и сохраняет ее в свойстве Date. – Michael

ответ

1

Вы не можете использовать оператор >= для струн, см. Больше в Filtering section in docs.

Для типа собственности необходимо использовать NSDate, чтобы иметь возможность использовать операторы сравнения в запросах, но, к сожалению, RealmConverter не поддерживает обнаружение дат в настоящее время. Поэтому вам, вероятно, потребуется вручную импортировать данные или реализовать эту функцию в RealmConverter и отправить запрос на перенос :)

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