前提
SwiftでRealmから日付が一致したデータを抽出したいです。
値は一致しているように見えるのですが不一致なようでデータが抽出できません。
データの型も一致 Date? しており、日付のフォーマット方法も同じです。
filterを使って抽出しようとしているのですが、他にも方法あれば、ご教授いただきたいです。
実現したいこと
ここに実現したいことを箇条書きで書いてください。
- Realmから日付が一致するデータを抽出する
該当のソースコード
Swift
1//モデル 2class Data: Object { 3 @objc dynamic var date: Date? = nil 4 @objc dynamic var a = 0 5 @objc dynamic var b: Double = 0.0 6 @objc dynamic var c: Double = 0.0 7 8 convenience init (date: Date?) { 9 self.init() 10 self.date = date 11 } 12 13 func formattedDate() -> String { 14 guard let date = self.date 15 else {return ""} 16 let dateFormatter = DateFormatter() 17 dateFormatter.dateStyle = .medium 18 dateFormatter.timeStyle = .medium 19 dateFormatter.locale = Locale(identifier: "ja_JP") 20 21 return dateFormatter.string(from: date) 22 } 23} 24 25class Data2: Object { 26 @objc dynamic var date: Date? = nil 27 28 //初期化 29 convenience init (date: Date?) { 30 self.init() 31 self.date = date 32 } 33} 34//date2はData2modelから取り出した値(日付date?) 35 36 37let realmData = try! Realm().objects(Data.self).filter("date == %@", date2) 38//Expression implicitly coerced from 'Date?' to 'Any' 39//黄色の注意なので放置Provide a default value to avoid this warning fix 40//しても結果は変わらず 41 42let count = realmData.count 43print("realmData.count",count). //出力0 44 45let realmDatao2 = try! Realm().objects(Data.self) 46 47let a = realmData[0].date 48 49if date2 == a{ 50 print("一致",date2, a) 51 } else { 52 print("不一致",date2, a) 53} 54 55/* 56出力結果 57 58realmData Results<AData> <0x13c540660> ( 59 60) 61realmData.count 0 62 63 64 65不一致 66Optional(2022-12-23 05:31:23 +0000) 67Optional(2022-12-23 05:31:23 +0000) 68 69 70 71Realm Studio 72 73date date? 742022-12-23T05:31:23.480Z 75 76date date? 772022-12-23T05:31:23.480Z 78 79realm内でも値は一致しています。 80 81 82*/ 83 84 85 86 87
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。