iOS 에서 valueForKeyPath 의 일반적인 방법 예시
2791 단어 iosvalueforkeypath배열
많은 사람들 이-(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;
너무 편리 해!총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.