2018-06-27 NSPredicate
하나.콘셉트
Cocoa는 필터의 조건을 지정하는 데 사용되는
NSPredicate
라는 클래스를 제공합니다.이 대상을 만들 수 있습니다. 이 대상을 통해 필요한 파일을 정확하게 설명하고, 모든 대상을 술어를 통해 선별하여 조건과 일치하는지 판단할 수 있습니다.둘.관련 예제
Car *car1 = [[Car alloc] init];
[car1 setName: @"Hoben"];
[car1 setHorsePower: 160];
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"name == 'Hoben'"];
BOOL match = [predicate evaluateWithObject: car1];
NSLog(@"%d", match);
NSPredicate *predicate = [NSPredicate predicateWithFormat: @"name == 'Hoben'"];
BOOL match = [predicate evaluateWithObject: car1];
NSLog(@"%d", match);
Car *car2 = [[Car alloc] init];
[car2 setName: @"JP"];
[car2 setHorsePower: 100];
Car *car3 = [[Car alloc] init];
[car3 setName: @"Road"];
[car3 setHorsePower: 200];
NSArray *cars = [[NSArray alloc] initWithObjects: car1, car2, car3, nil];
predicate = [NSPredicate predicateWithFormat: @"horsePower > 150"];
for (Car *car in cars) {
BOOL matchPower = [predicate evaluateWithObject: car];
if (matchPower)
NSLog(@"%@", [car name]);
}
for 루프를 다른 함수
filteredArrayUsingPredicate
로 대체합니다.NSArray *results;
results = [cars filteredArrayUsingPredicate: predicate];
NSLog(@"%@", results);
다음 두 문장은 같은 가격입니다.
predicate = [NSPredicate predicateWithFormat: @"horsePower > 150 && horsePower < 170"];
predicate = [NSPredicate predicateWithFormat: @"horsePower BETWEEN {150, 170}"];
IN 사용:
predicate = [NSPredicate predicateWithFormat: @"Self.name IN {'Hoben', 'JP'}"];
문자열 연산자
문자열 연산자 중
BEGINSWITH
,CONTAINS
,ENDSWITH
를 사용할 수 있으며, 다음에 수식자 [cd]/[c]/[d]를 추가하면 각각 대소문자와 발음을 구분하지 않음, 대소문자를 구분하지 않음, 발음을 구분하지 않음을 나타낸다.predicate = [NSPredicate predicateWithFormat: @"Self.name BEGINSWITH[cd] 'Ho'"];
predicate = [NSPredicate predicateWithFormat: @"Self.name CONTAINS[c] 'ho'"];
predicate = [NSPredicate predicateWithFormat: @"Self.name ENDSWITH 'ben'"];
LIKE
연산자를 운용할 수 있는데 *ob*
는'ob'를 포함하는 문자열을 대표하고 *??be*
는 be
앞에 적어도 두 글자가 있다.predicate = [NSPredicate predicateWithFormat: @"Self.name LIKE '*ob*'"];
predicate = [NSPredicate predicateWithFormat: @"Self.name LIKE '*??be*'"];
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.