2016-11-14 3 views
2
var numbersDetail = List is type of ContactDetail() 
let predicate = NSPredicate(format: ContactDetail.NUMBER + " = %@", formattedNumber!) 
let realmContactDetail = numbersDetail.filter(predicate).first 

가져 오기 오류 :영역의 목록 필터 스위프트

던져 RLMException ("이 방법은 RLMArray상의 RLMRealm에서 검색 인스턴스를 호출 할 수 있습니다"); 당신이 시도하고 부모 개체가 Realm에 추가되기 전에 (실제로 후드 오브젝티브 C RLMArray 개체)를 영역 스위프트 List 개체에 대한 쿼리를 수행하는 경우

답변

1

이 오류가 발생합니다. 간단히 말해서

class Person: Object { 
    dynamic var name = "" 
    dynamic var picture: NSData? = nil // optionals supported 
    let dogs = List<Dog>() 
} 

let dog = Dog() 
dog.name = "Rex" 

let person = Person() 
person.dogs.append(dog) 

let rex = person.dogs.filter("name == 'Rex'") // QUERY WILL TRIGGER EXCEPTION AT THIS POINT 

let realm = try! Realm() 
try! realm.write { 
    realm.add(person) 
} 

let rex = person.dogs.filter("name == 'Rex'") // Query will now work as expected 

, 당신은 당신이 그 쿼리를 수행하기 전에 RealmnumbersDetail가 속해 있는지 확인해야합니다. numbersDetail.realm != nil을 확인하여 쉽게 테스트 할 수 있습니다.