質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

3043閲覧

RealmSwiftで中身の検索がしたい

settyan

総合スコア60

Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2017/01/19 00:55

いつもお世話になっております。
今回はRealmSwiftで検索(取得)について質問があります。

やりたいこと

RealmSwiftの中身のデータを取得したい

やったこと

Swift

1//スキーマ設定 2class BookList: Object { 3 dynamic var id = 0 4 dynamic var bookName = "" 5 dynamic var justIssued = 0 6}

以下のようなコードを試しました。

Swift

1 let realm = try! Realm() 2 3 let test :BookList = realm.objects(BookList).filter("id == 0") 4 let test = realm.objects(BookList).filter("id == 0") 5 let test = realm.objects(BookList).filter("id = 0") 6 let test = realm.objects(BookList).filter("id %@") 7 let test = realm.objects(BookList).filter(@"id %@") 8 let test :BookList = realm.objects(BookList).filter("bookName == aa") 9 10 11 if test == NULL { 12 //検索に引っかかったらここに通したい 13 } 14

エラーコードはCannot convert value of type 'String' to expected argument type 'NSPredicate'が出ています。
なのでNSPredicate等を試してみましたがうまくいきませんでした。
検索で引っかかった書き方はおおかたやってはみたもののダメでした。

どなたかご教授頂ければ幸いです。

環境

Xcode8.2
RealmSwift 2.2.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

二番目の

swift

1let test = realm.objects(BookList).filter("id == 0")

でエラーは出ないと思いますが?

その他、

swift

1//型を明示する 2let test: Results<BookList> = realm.objects(BookList).filter("id == 0") 3 4//変数で指定 5let searchId = 0 6let test = realm.objects(BookList).filter("id == %@", searchId) //%dの方がいい? 7 8//NSPredicate使用 9let pred = NSPredicate(format: "id == %d", searchId) 10let test = realm.objects(BookList).filter(pred)

以上、Swift 2 + Realm 2.2.0で検証しました。

投稿2017/01/19 01:42

編集2017/01/19 02:18
fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

settyan

2017/01/19 02:11

確かに出ませんでした。。。 些細なミスでした。申し訳有りません。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問