swift
  • realm
  • 2016-08-23 8 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") 
    

    throw되는 오류 메시지 :

    *** 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'예외가 발생했습니다. 이유 : '형식 문자열을 구문 분석 할 수 없습니다.'이메일! = % @ && '% @! 포함 된 이메일' '. ' – MJQZ1347

    +0

    형식 문자열에 오타가 있었는데 아포스트로피가 있습니다. 나는 그것을 지금 제거했습니다. – jpsim

    +0

    또한 오류가 발생합니다. 'NSPredicate'의 생성은 실패한 것 같습니다. '*** 캐치되지 않은 예외로 인해 앱을 종료하는 중'NSInvalidArgumentException ', 이유 :'형식 문자열을 구문 분석 할 수 없습니다. '이메일! = % @ && % @! 포함 된 이메일 "''. – MJQZ1347

    관련 문제