2016-08-08 6 views
1

Swift에서 다음과 같은 문제가 있습니다.Swift : 핵심 데이터 모델에서 문자열 검색

name "David"로 모델의 모든 사람을 검색하는 다음 함수를 작성했습니다. "이름이"내 모델의 선택 속성 때문에

private func myFetchRequest() 
{ 
    let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext 

    let myRequest = NSFetchRequest(entityName: "RegisterOfPersons") 

    myRequest.predicate = NSPredicate(format: "name = %@", "David") 

    do{ 
     let results = try moc.executeFetchRequest(myRequest) 

     for result in results 
     { 
      print(result) 
     } 

    } catch let error{ 
     print(error) 
    } 
} 

내 모델은 attribute 이름 = "데이비드"

myRequest.predicate = NSPredicate(format: "name = %@", "David") 

는 이러한 항목을 찾을 수없는 라인을 가진 두 개의 항목이 포함되어 있지만. Optional ("David")을 검색해야합니까? myRequest.predicate = NSPredicate(format: "name = %@", Optional("David"))과 같은 의미입니까?

내 모델에서 이름이 "David"인 모든 항목을 검색하려면 어떻게해야합니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

도움 주셔서 감사합니다.

+0

확실하지 않음으로 시도 그래서이

myRequest.predicate = NSPredicate(format: "name = '%@'", "David") 

처럼 작은 따옴표와 비교 이름을 묶으 string와 predicating되지만 가진'선택적 속성이 아닌 수 name' 관련. 신속 선택 사항은 핵심 데이터 선택 속성과 동일한 것이 아닙니다. –

+0

리터럴 구문'NSPredicate (format : "name = 'David'")'이 작동합니까? – vadian

답변

4

당신은 또한 Contains

myRequest.predicate = NSPredicate(format: "name CONTAINS[cd] %@", "David") 
+0

리터럴 문자열 % @과 비교합니다. 술어 프로그래밍 안내서에서 "% @를 사용하여 변수 대체를 사용하면 (예 : % @와 같은 firstName과 같이) 따옴표가 자동으로 추가됩니다." – pbasdf

+0

@pbasdf 나는 그것을 알고 있지만 op는 작은 따옴표를 추가하기를 제안하는 이유 인'='을 사용하고있다. –

+0

답변 해 주셔서 감사합니다. 나는 당신이 제안한대로 시도했다. 그러나 여전히 작동하지 않습니다. 어쩌면 다른 곳에서 실수를 저지르고 있을까요? – Pisan

관련 문제