valueForKeyPath 학습 레코드
NSArray *array = @[@"name", @"w", @"aa", @"jimsa"];
NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);
출력
(NAME, W, AA, JIMSA)는 그룹의 모든 구성원이 uppercaseString 방법을 실행한 다음에 되돌아오는 대상을 새로운 그룹으로 만들어 되돌아오는 것과 같다.uppercaseString 방법을 사용할 수 있는 이상 NSString의 다른 방법도 가능하다. 예를 들어
[array valueForKeyPath:@ "length"] 는 각 문자열의 길이로 구성된 배열을 반환합니다.네가 생각할 수 있는 멤버의 실례적인 방법만 이렇게 쓸 수 있다.
만약 네가 이 방법이 이 정도의 기능이라고 생각한다면, 그것은 틀렸다.구체적인 예를 들다.
NSNumber 배열에 대한 빠른 계산 배열 구화, 평균, 최대, 최소값
NSArray *array = @[@1, @2, @3, @4, @10];
NSNumber *sum = [array valueForKeyPath:@"@sum.self"];
NSNumber *avg = [array valueForKeyPath:@"@avg.self"];
NSNumber *max = [array valueForKeyPath:@"@max.self"];
NSNumber *min = [array valueForKeyPath:@"@min.self"];
또는 출력 유형 지정
NSNumber *sum = [array valueForKeyPath:@"@sum.floatValue"];
NSNumber *avg = [array valueForKeyPath:@"@avg.floatValue"];
NSNumber *max = [array valueForKeyPath:@"@max.floatValue"];
NSNumber *min = [array valueForKeyPath:@"@min.floatValue"];
중복 제거
NSArray *array = @[@"name", @"w", @"aa", @"jimsa", @"aa"];
NSLog(@"%@", [array valueForKeyPath:@"@distinctUnionOfObjects.self"]);
프린트
( name, w, jimsa, aa )
NSDictionary 배열에서 적절한 키 쌍의 값을 빠르게 찾습니다.
NSArray *array = @[@{@"name" : @"cookeee",@"code" : @1},
@{@"name": @"jim",@"code" : @2},
@{@"name": @"jim",@"code" : @1},
@{@"name": @"jbos",@"code" : @1}];
NSLog(@"%@", [array valueForKeyPath:@"name"]);
사전에서namekey에 대응하는 값으로 구성된 그룹을 직접 얻을 수 있습니다. 순환 값을 다시 새 그룹에 추가하는 것보다 빠르고 편리합니다.
(cookeee,jim,jim,jbos) 역시 끼워서 사용할 수 있으며, 먼저name에 대응하는 값의 중복 데이터를 제거한 다음에 값을 얻는다.
NSArray *array = @[@{@"name" : @"cookeee",@"code" : @1},
@{@"name": @"jim",@"code" : @2},
@{@"name": @"jim",@"code" : @1},
@{@"name": @"jbos",@"code" : @1}];
people *p = [[people alloc] init];
p.name = @"zs";
p.age = @"18";
people *p1 = [[people alloc] init];
p1.name = @"ls";
p1.age = @"18";
people *p2 = [[people alloc] init];
p2.name = @"ww";
p2.age = @"18";
people *p3 = [[people alloc] init];
p3.name = @"ls";
p3.age = @"18";
NSArray *array = @[p,p1,p2,p3];
NSLog(@"%@",[array valueForKeyPath:@"@distinctUnionOfObjects.name"]);
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name=%@", @"ls"];
NSLog(@"%@",[array filteredArrayUsingPredicate:predicate]);
NSLog(@"%@", [array valueForKeyPath:@"@distinctUnionOfObjects.name"]);
프린트
( cookeee, jim, jbos )
UITextfiedl의 placeholder 색상 변경
[searchField setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];
다시 쓰기-(void)drawPlaceholderInRect:(CGRect)rect보다편하게. 물려받아야 돼.
NSArray *array = @[@"name", @"w", @"aa", @"ZXPing"];
NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);
그룹의 모든 구성원이 uppercaseString 방법을 실행한 다음에 되돌아오는 대상을 새로운 그룹으로 만들어 되돌아오는 것과 같다.uppercaseString 방법을 사용할 수 있는 이상 NSString의 다른 방법도 가능합니다. 예를 들어 [array valueForKey Path: @ "length"].물론 다른 대상의 실례적인 방법도 이런 식으로 추론하여 호출할 수 있다~!잘못이 있으면 바로잡아 주세요. 감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.