NSXMLParser의 일부로 변수를 사용하여 술어를 기반으로 객체를 검색하려고 시도하는 메소드를 작성하려고합니다. 코드는 다음과 같습니다핵심 데이터 술어에서 요소 이름에 변수 사용
내가 클래스에 정의 된 이러한 변수를 가지고 :
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (strong, nonatomic) NSString *model;
@property (strong, nonatomic) NSString *element;
지금 방법에서, 나는이 같은 요청 설정 : 이제
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:self.model inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
도전을 - 제가 할 수 있도록하려면 것은 :
// DOES NOT WORK
[request setPredicate:[NSPredicate predicateWithFormat:@"%@ == %@", self.element,string]];
B ut은 결과를 반환하지 않습니다. 일부는 주변의 일 처리 후,이 이 작동합니까 것을 알 수 :
if ([self.element isEqualToString:@"name"]) {
[request setPredicate:[NSPredicate predicateWithFormat:@"name == %@", string]];
}
이 내 self.element
이 (? 내 생각)이 올바르게 설정되어 있는지 알려줍니다를하지만 술어는 식의 왼쪽을 좋아하지 않습니다 변수입니다.
나는 또한 시도 :
[request setPredicate:[NSPredicate predicateWithFormat:@"%s == %@", [self.element UTF8String],string]];
를 ... 그것은 문자열을 선호하는 아마하면 바로 볼 수 있습니다. 나는 그 일을 할 수 없었다.
나는 무엇을 시도하고 있습니까? Core Data 문서에서 가능한 한 많이 읽었으며 이런 식으로 수행하는 샘플 코드를 찾을 수 없지만 불가능하다고 말할 수있는 것을 찾지 못했습니다.
편집 : 지금 작업 코드는 : 당신이 전에하지 않은 경우
는[request setPredicate:[NSPredicate predicateWithFormat:@"%K == %@", self.element,string]];
감사합니다. 내 코드를 작동시키는 정보의 특정 부분은 값이 아니라 키로 인수를 처리하는 % K 변수입니다. 이제 근무 =) – valdarin
당신은 환영합니다 :) 핵심 데이터 및 술어는 멋진 기술이며 당신은 그들 모두를 할 수 있습니다 ... – matteodv