iOS 에서 valueForKeyPath 의 일반적인 방법 예시

머리말
많은 사람들 이-(nullableid)value ForKeyPath:(NSString*)keyPath;이 방법 은 그다지 이해 되 지 않 지만,실제로 이것 은 KVC 의 고급 용법 으로 확장 할 수 있다.이 방법 은 매우 강하 다.다음은 iOS 에서 valueForKeyPath 를 자주 사용 하 는 방법 을 자세히 소개 해 드 리 겠 습 니 다.긴 말 하지 않 겠 습 니 다.자세히 소개 해 드 리 겠 습 니 다.
value ForKeyPath 의 일반적인 방법
1.value ForKeyPath 는 배열 의 최소 값,최대 값,평균 값,구 화 를 가 져 올 수 있 습 니 다.코드 는 다음 과 같 습 니 다:

NSArray *array = @[@10, @23, @43, @54, @7, @17, @5];

+ (NSString *)caculateArray:(NSArray *)array
{
 CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue];
 CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue];
 CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue];
 CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue];
 NSLog(@"%fn%fn%fn%f",sum,avg,max,min);
 return [NSString stringWithFormat:@"%f",sum];
}
2.value ForKeyPath 는 배열 의 같은 key 요 소 를 가 져 올 수 있 습 니 다.
다음 과 같다.

NSArray *arr = @[@{@"city":@"beijing",@"person":@{@"name":@"zhangsan"}},@{@"city":@"chengdu"}];

[arr valueForKeyPath:@"city"]      city   @[@"beijing",@"chengdu"]
3.value ForKeyPath 를 사용 할 수 있 습 니 다.한 층 한 층 아래 색인 을 사용 할 수 있 습 니 다.여러 사전 등급 이 있 을 때 하위 등급 의 속성 을 취 하 는 것 이 매우 간단 합 니 다.

NSDictionary *dict1 = @{@"dic1":@{@"dic2":@{@"name":@"lisi",@"info":@{@"age":@"12"}}}};

id res = [dict1 valueForKeyPath:@"[dict1.dict2.name](http://dict1.dict2.name/)"];
4.중복 되 는 데이터 삭제

NSArray *array = @[@"qq", @"wechat", @"qq", @"msn", @"wechat"];
[array valueForKeyPath:@"@distinctUnionOfObjects.self"];
5.끼 워 넣 기 사용(대응 하 는 값 의 중복 데 이 터 를 삭제 하고 값 을 추출 합 니 다)

NSArray *array = @[@{@"name" : @"xiaoming",
     @"code" : @1},
     @{@"name": @"judy",
     @"code" : @2},
     @{@"name": @"judy",
     @"code" : @3},
     @{@"name": @"xiaohua",
     @"code" : @4}];
[array valueForKeyPath:@"@distinctUnionOfObjects.name"];
6、UITextfield 의 placeholder 색상 변경

[addressTextField setValue:[UIColor redColor] forKeyPath:@”_placeholderLabel.textColor”];
다시 쓰 는 것 보다- (void)drawPlaceholderInRect:(CGRect)rect; 너무 편리 해!
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기