2016-11-09 10 views
1
私は、CSVインポートツール ( https://github.com/realm/realm-cocoa-converter/tree/master/RealmConverter)とレルムファイルを作っ

迅速、xcode8レルムクエリーの日付タイプ?

これは、レルムファイルのスキーマです:

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! 

レルムファイルスキーマの誕生日タイプが文字列の場合、> =またはその間でクエリできますか? レルムファイルスキーマの誕生日を変更する必要がありますか?文字列 - >誕生日:NSDate?

+0

日付は文字列ではなく、それにもかかわらず保存したいと思っていました。あなたの現在のフィルタは日付を文字列として表示しません。 '' birthday> = '2016-01-01' "'のように一重引用符で囲む必要があります。ただし、 "> ="は、ドキュメントで説明されているようにStringで動作しない可能性があります。 - 比較演算子==、<=, <, > =、>、!=、BETWEENはInt、Int8、Int16、Int32、Int64、Float、DoubleおよびNSDateプロパティの種類。そのような年齢== 45 – Michael

+0

ありがとうございます。私はレルムファイルスキーマを変更する必要がありますか?私はココアコンバータのソースを変更する必要がありますか? – ttoggaiman

+0

1つのアプローチは、レルムに日付として格納されるものと、CSVからインポートするための1つの計算されたStringという2つのオブジェクトプロパティを持つことです。計算されたプロパティは、インポートされた文字列を日付に変換し、Dateプロパティに格納します。 – Michael

答えて

1

>=演算子を文字列に使用することはできません。詳しくはFiltering section in docsを参照してください。

クエリで比較演算子を使用できるようにするにはプロパティタイプにNSDateを使用する必要がありますが、残念ながらRealmConverterは現在の日付の検出をサポートしていません。したがって、おそらくデータを手動でインポートするかRealmConverterでこの機能を実装してプルリクエストを送信する必要があります:)

関連する問題