valueForKeyPath 학습 레코드

4045 단어
  • (id)valueForKeyPath:(NSString *)keyPath
  • 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"].물론 다른 대상의 실례적인 방법도 이런 식으로 추론하여 호출할 수 있다~!잘못이 있으면 바로잡아 주세요. 감사합니다!

    좋은 웹페이지 즐겨찾기