0
私はRealmを初めて利用しています。最初のものは最初、自分のレルムのオブジェクトがそうのようになります。Swift:Realmを使用したレコードのフィルタリング
func RegisterToDatabase(Valcode:String, IsConfirmed:Bool = false){
let loRegistrationInf = RegistrationInf()
let realm = try! Realm()
if IsConfirmed {
let loReg = realm.objects(RegistrationInf.self).filter("RValCode == \(Valcode)").first
try! realm.write {
loReg?.RIsConfirmed = IsConfirmed
}
self.loIsConfirmed = IsConfirmed
}
else {
loRegistrationInf.RValCode = Valcode
loRegistrationInf.RIsConfirmed = IsConfirmed
try! realm.write {
realm.add(loRegistrationInf)
}
}
}
:
class RegistrationInf: Object {
dynamic var RValCode = ""
dynamic var RIsConfirmed = false
}
私は、以下の機能を使用してレルムデータベースに挿入する検証コードを含むJSONデータを返すPHPスクリプトを持っています
その後、ユーザーがコードを含むSMSを受信すると、ユーザーはコードを入力して確認し、上記の関数が再度呼び出されます。このときには、 の2番目のパラメーターの値がtrueです。
コードは次の行に来るとき:
let loReg = realm.objects(RegistrationInf.self).filter("RValCode == \(Valcode)").first
私は私に言った例外を取得:キャッチされない例外により「無効な値」にアプリを終了
、理由:「プロパティ」RValCode 'は' RegistrationInf 'タイプのオブジェクト内のリンクではありません
ここで私は何が欠けていますか?
「NSPredicate」のオブジェクトを使用する必要があるときに、 'filter(_ :)'に渡される述語文字列でSwiftの文字列補間構文( '\(variable)置換構文( '%@')。正しい構文( 'filter(" RValCode ==%@ "、Valcode)')を使用すると、より良い結果が得られますか? – bdash
そうでした!おかげさまで、訂正してくれてありがとう、次回は悪い英語のために申し訳なく思っています。 – Licentia