2008-10-17 2 views
2

내 핵심 데이터 관리 객체 모델에서 Baz라는 엔티티 Baz에 대한 다 대다 관계 (대다수의 역원 포함)가있는 엔티티 Foo가 있습니다. Baz에는 "tag"라는 문자열 속성이 있습니다. [NSPredicateRowEditorTemplate templatesWithAttributeKeyPaths:[NSArray arrayWithObject:@"baz.tag"] inEntityDescription:FooDescription]을 사용하여 NSPredicateEditor에 대한 행 편집기를 만들면 결과에 (예상대로)대다수 키에 대해 자동 생성 된 조건 자 행 템플리트?

[Popup : baz.tag] [Popup : Contains | is | is not | ...]와 같은 행 템플리트가 포함됩니다 [ TextField]

팝업에서 "포함"을 선택하면 조건부 쿼리가 예상대로 작동합니다. 다른 팝업 (예 : "is")을 선택하면 "여기에 많은 키가 허용되지 않습니다"라는 오류가 발생합니다. [NSPredicateRowEditorTemplate templatesWithAttributeKeyPaths:inEntityDescription:]을 사용할 수 있습니까, 아니면 수동으로 행 편집기를 만들어야합니까?

답변

3

올바른 연산자를 생성 할 수없는 자동 생성 템플릿 ([NSPredicateRowEditorTemplate templatesWithAttributeKeyPaths:inEntityDescription:] 사용)처럼 보입니다. 해결 방법은 [NSPredicateEditorRowTemplate initWithLeftExpressions:rightExpressionAttributeType:modifier:operators:options:]을 사용하여 수동으로 템플릿을 만드는 것입니다. 주어진 예 :

id template = [[NSPredicateEditorRowTemplate initWithLeftExpressions:[NSArray arrayWithObject:[NSExpression expressionForKeyPath:@"baz.tag"]] rightExpressionAttributeType:NSStringAttributeType modifier:NSAnyPredicateModifier operators:keywordOperators options:0]; 
관련 문제