은 빠른 수정, 당신은 모두의 NSString
부분을 필요가 없습니다. 이 대체 방법은 predicateWithFormat:
메소드의 요점입니다! 간단히 사용하십시오 :
NSPredicate *query = [NSPredicate predicateWithFormat:@"s_name == %@ AND s_regno == %d", Name, [RegNo intValue]];
저는 형식 문자열을 완전히 피하고 대신 코드에서 조건자를 작성합니다. 내가 s_name like[cd] %@
같이 이름에 소문자와 분음 부호를 구분 비교를 할 NSCaseInsensitivePredicateOption|NSDiacriticInsensitivePredicateOption
을 추가
NSPredicate *nameQuery =
[NSComparisonPredicate predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"s_name"]
rightExpression:[NSExpression expressionForConstantValue:Name]
modifier:NSDirectPredicateModifier
type:NSLikePredicateOperatorType
options:NSCaseInsensitivePredicateOption|NSDiacriticInsensitivePredicateOption];
NSPredicate *regNoQuery =
[NSComparisonPredicate predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"s_regno"]
rightExpression:[NSExpression expressionForConstantValue:RegNo]
modifier:NSDirectPredicateModifier
type:NSEqualToPredicateOperatorType
options:0];
NSPredicate *query = [NSCompoundPredicate andPredicateWithSubpredicates:@[nameQuery,regNoQuery]];
참고. 필요하지 않으면 물론 type:NSEqualToPredicateOperatorType
및 options:0
을 사용할 수 있습니다.
그리고 입력 문자열에 큰 따옴표가 있으면 무엇입니까? – northernman