swift
  • realm
  • 2016-08-23 53 views 3 likes 
    3

    だから私は今、私はこの配列に格納されていないユーザーのために照会したいと思い、memberEmails持つ配列を持っている:スローされレルム:配列に格納されているプロパティをクエリする方法は?

    var memberEmails: [String] = // ... is not empty 
    
    self.registeredUsers = self.realm.objects(AppUser).filter("email != '\(self.user.email!)' && '\(memberEmails)' !CONTAINS email") 
    

    エラーメッセージ:

    *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "email != '[email protected]' && '["[email protected]"]' !CONTAINS email"' 
    

    答えて

    2

    あなたは「shouldn tはクエリを作るためにスウィフトの文字列の補間を使用するのではなく、NSPredicateの%@フォーマッタ: `***アプリデュの終了:

    var memberEmails: [String] = // ... is not empty 
    
    self.registeredUsers = self.realm.objects(AppUser.self).filter("email != %@ && NOT (email IN %@)", self.user.email, memberEmails) 
    
    +0

    おかげで、それはエラーがスローされます'NSInvalidArgumentException'の例外を受け取りました。理由: 'フォーマット文字列を解析できませんでした。' email!=%@ && '%@! ' – MJQZ1347

    +0

    私は書式文字列に余分なアポストロフィを打ちました。私は今それを削除しました。 – jpsim

    +0

    また、これはエラーをスローします。 'NSPredicate'の作成は失敗するようです。 '***キャッチされていない例外 'NSInvalidArgumentException'の理由でアプリケーションを終了しています:理由: 'フォーマット文字列を解析できませんでした' email!=%@ &&%@! – MJQZ1347

    関連する問題