2017-05-23 2 views
0

회사에 위치 목록이 있고 각 위치에 연락처 목록이 있도록 렐름을 설정했습니다. 사용자가 우편 번호로 검색하고 일치하는 연락처를 필터링 할 수 있어야합니다. 내가 지금까지 시도했습니다 무엇필터 하위 목록

let companies = realm.objects(Companies.self).filter({$0.locations.filter("ANY contacts.zip = \(userZip)")}) 

이지만 filter가 인수 문자열을 받아 들일 수 없음을 알려줍니다.

모든 작업이 완료되면 반환해야하는 것은 지정된 검색과 일치하는 연락처가있는 회사의 목록입니다. 그 다음에 어떻게 나아갈 수있는 더 쉬운 방법이 있습니까?

답변

0

컬렉션 프로토콜에서 상속 된 filter() 메서드를 호출하려고했습니다. 영역의 filter() 메소드를 호출하려면, 다음과 같이 작성해야합니다 :

realm.objects(Companies.self).filter("ANY locations.contacts.zip = %@", userZip) 

가 참고 : 쿼리를 구성하는 문자열 보간을 사용하지 마십시오. 문자열 보간은 문자열이 선택적 일 때 예기치 않은 동작을 일으 킵니다. 대신 NSPredicate의 대체 구문을 사용하십시오.