どのように私は迅速にレルム対象から特定の日付でフィルタリングすることができますか?

アルフォンス:

私は日付の日付プロパティの型を持つレルムオブジェクトを持っており、特定の日付を持つアイテムのリストを取得したいです。

私はカレンダーから特定の日付をクリックすると、たとえば2020年3月6日のために、それは2020年3月6日に作成されたアイテムの一覧を表示します。

ここでは、画像の説明を入力します。

ジェイ:

日付でフィルタリングが完全に日付オブジェクトでサポートされています。ここでは、2つの迅速な例があります。(あなたの質問のために)特定の日をフィルタリングするための一つの間で使用して、日付範囲の1。

注、私は機能していMAKEDATE日付オブジェクトに文字列をキャストします。この例ではdog_birthdate日付プロパティを持つレルムDogClassオブジェクトを使用しています。


これは、特定の日付を持つオブジェクトのためのフィルタ

let searchDate = self.makeDate(fromString: "06/01/2019")
let specificDateResults = realm.objects(DogClass.self)
                               .filter("dog_birthdate == %@", searchDate)
for dog in specificDateResults {
    print(dog.dog_name)
}

これは、日付範囲内のオブジェクトのためのフィルタ

let startDate = self.makeDate(fromString: "06/01/2019")
let endDate = self.makeDate(fromString: "06/20/2019")
let dateRangeResuls = realm.objects(DogClass.self)
                           .filter("dog_birthdate BETWEEN {%@,%@}", startDate, endDate)
for dog in dateRangeResuls {
    print(dog.dog_name)
}

EDIT:テスト用OPからのコメント内のコードを使用して

let stringDate = "2019-06-01"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
let searchDate:Date = dateFormatter.date(from: stringDate)!
let result = realm.objects(DogClass.self).filter("dog_birthdate == %@", searchDate)
for dog in result {
    print(dog.dog_name)
}

これは完璧に動作します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=34208&siteId=1