내 데이터 디자인을 사용하면 한 명의 사용자가 다수의 투표를 할 수 있습니다. 각 단일 기록은 또한 많은 표를 가질 수 있습니다. 내가 참조 마스터 뷰 컨트롤러에서이일대 다 관계에서 단일 값 검색/검색 Core Data Swift
에 의존하는 특정 요소에 대한 검색과 대규모 사투를 벌인거야, I했습니다 a를 기록 엔티티, 단일 var에 사용자 개체에 컨트롤러를 가져 오기 (즉, . device-user). 동일한 managedContext에 삽입됩니다.
이것이 좋다고 가정 할 때, 세부보기 컨트롤러에 연결하기 위해 준비 할 때 선택한 레코드를 전달하려고합니다 (문제 없음). 해당 레코드에 대한 모든 투표 배열 (아무런 문제가없는 것으로 생각합니다. 아래 코드). 그리고 여기에 까다로운 부분이 있습니다. 옵션 장치 사용자의 투표 기록 (내 질문)입니다. 내가 할 노력하고있어
let votesAsSet = record.votes
controller.votes = votesAsSet?.allObjects as? [Vote]
let predicateForUsersVote = NSPredicate(format: "record.votes.user == user")
let thisUsersVoteForThisRecordAsSet = votesAsSet?.filteredSetUsingPredicate(predicateForUsersVote)
controller.thisUsersVote = thisUsersVoteForThisRecordAsSet!.first as? Vote
레코드의 사용자가 장치 사용자와 일치하는 핵심 데이터에서 사용자의 투표를 통해 반복하는 것입니다.
내 신이 작동합니다! 저는 술어, NSSets 및 핵심 데이터에 대해 많이 읽었습니다. 여러분의 대답은 잘 정리되어 있습니다. 잠시 보람 된 질문 하나 : 왜 "user == user"또는 "user == self.user"가 아닌가? – DrWhat
술어 내에서 'user'는 평가되는 객체의'user' 속성 **을 참조합니다. ** :이 경우, 집합의 각'Vote' 객체. 마찬가지로'self'는 객체 자체를 의미합니다. 그래서 "user == user"와 "user == self.user"는 객체의'user' 속성과 객체의'user' 속성을 비교하며, 단지 모든 객체에 대해 true로 평가됩니다 -사용자. – pbasdf
술어를 작성하는 코드의 값과 비교하려면 % @ 형식을 사용하여 값을 대체해야합니다. – pbasdf