2017-03-05 11 views
0

eventStatus 속성이있는 EventDec 엔티티가 있는데 그 속성의 결과 만 표시하려고합니다. 여기 내 코드가이진 연산자를 Nspredicate 및 int에 적용 할 수 없습니다.

let fetchRequestDec = NSFetchRequest<NSFetchRequestResult>(entityName: "EventDec") 
    fetchRequestDec.predicate = NSPredicate(format:"eventStatus = %i") 
    let result = fetchRequestDec.predicate 
if (result == 1) 
    { 
     print("Status = 1") 
    } 
    else 
    { 
     print("Status = 2") 
    } 

그래서 나는이 오류가 발생하면서 잘못된 필터링을하고 있습니다. 어떻게 해결할 수 있습니까?

이진 연산자 '==는'자 NSPredicate에 적용하고, 애플은 스위프트 3.0 문자열 변화를 많이했기 때문에 나는, 놀이터에서이 문제를 확인 기뻐

+1

결과가 == 1 라인입니다. 결과는 NSPredicate이고, 1은 int이므로 이항 연산자 '=='는 사용할 수 없습니다. – dylanthelion

+0

그래, 어떻게 해결할 것입니까? – Coder221

+0

결과에 int 값을 지정하거나 (결과 = 4 등), 다른 NSPredicate (결과 == NSPredicate (형식 : "eventStatus = 6") 인 경우)와 비교하십시오. 이 스 니펫이 무엇을해야하는지에 대한 자세한 정보가 없으면 무엇을 해야할지 정확히 말할 수 없습니다. 정확히 무엇을 확인하고 있습니까? – dylanthelion

답변

1

왜 당신이 술어를 사용하려고? 귀하의 질문에 EventDec 개체를 반환하고 eventStatus 특성을 인쇄하려는 것 같습니다. 가져 오기를 수행해야합니다. 결과 배열을 가져옵니다. 원하는 것을 추출하십시오. 필터링 필요 없음.

let fetchRequest: NSFetchRequest<EventDec> = EventDec.fetchRequest() 
if let results = try? context.fetch(fetchRequest) { 
    for result in results { 
    print("Status = \(result.eventStatus)") 
    } 
} 

여기서는 managedObjectContext가 context라고 가정합니다. 또한 typo eventStaus 대신에 eventStatus

+0

오타를 지적 해 주셔서 감사합니다. 그러나 이것은 작동하지 않았다. – Coder221

+0

fetchRequest에서 여전히 내 자신의 코드에서 을 발견했다. 'let fetchRequest : NSFetchRequest = EventDec.fetchRequest()'로 변경하면 도움이됩니까? – Magnas

+0

나는 그것을 시험해 보았다, 단지 출력했다 Status = /(result.eventStatus) – Coder221

1

좋아를 int로 할 수 없습니다. (당신은 또한 코드를 조금 변경하여 값에 액세스 할 수 있습니다) 당신의 술어의 int 값을 인쇄하려면 다음을 시도해보십시오

let index = fetchRequestDec.predicate.predicateFormat.index(fetchRequestDec.predicate.predicateFormat.endIndex, offsetBy: -1) 
print("Status: \(Int(String(fetchRequestDec.predicate.predicateFormat[index]))!)") 
+0

유형 'NSFetchRequest '의 값에는 구성원 술어 형식이 없습니다 – Coder221

+0

아, 죄송합니다. 속성은 NSPredicate입니다. 나는 지금 내 대답을 업데이트 할 것이다. – dylanthelion

+0

fetchRequestDec는 무엇이되어야합니까? 내가보기 엔 당신이 eventStatus 속성에 관여하지 않습니다. 그래서 나는 치명적인 오류가 발생했습니다. – Coder221