前に RealmSwift で配列内の検索を行う記事を書きましたが、もう1つ方法を紹介したいと思います。
こっちの方が直感的に記載できるので。
前提条件
前にも例えた、図書館のシステム的なノリでいきます (`Д´)ゞ
Libraryクラス(図書館)で本(Bookクラス)を管理していると思ってください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Library: Object { let books = List<Book>() } class Book: Object { @objc dynamic var uniqueId = "" @objc dynamic var title = "" @objc dynamic var author = "" @objc dynamic var circulationRecrords = 0 override static func primaryKey() -> String { return "uniqueId" } } |
検索方法
神・岸川克己さんが書いた本を探すとします。
前に紹介した方法が以下です。
1 2 3 4 5 6 7 |
do { let realmDB = try Realm() let books = realmDB.objects(Library.self).filter("SUBQUERY(books, $book, $book.author = %@).@count >= 1", "岸川克己") print(books) } catch { print(error.localizedDescription) } |
上記でも表示されますが、今回はこちら!
1 2 3 4 5 6 7 |
do { let realmDB = try Realm() let books = realmDB.objects(Library.self).filter("any books.author = '岸川克己'") print(books) } catch { print(error.localizedDescription) } |
シンプルですねー
コレクションの各要素に対し、条件に一致するかどうかを調べる演算子、それがanyぱいせんです。
最高ですね…!
さいごに
めっちゃ簡単めっちゃシンプル o(・_・)9
前の検索方法よりも直感的に記載できると思います。
ピンポイントで検索したい場合はこれがいいですね。
違うよ!とかこういう方法あるよ!ってのがあれば教えてください。
では( ¯·ω·¯ )
コメント