KVC 키 코드

4201 단어
KVC  전체 이름: Key Value coding 키 인 코딩
setValue: forKey: 값 을 수정 합 니 다.value ForKey: 속성 이 들 어 오 는 이름 입 니 다.setValue: forKeyPath: 키 경 로 를 통 해 수정 합 니 다.value ForKeyPath: 속성 을 전달 하 는 경 로 는 xx. xx 형식 입 니 다.KVC 는 보안 메커니즘 을 보완 하기 위해 키 를 통 해 밸 류 를 찾 는 형식 이 후기 에 개 발 된 디자인 모델 에 큰 도움 이 된다 는 장점 이 있다.네 가지 인 코딩 형식.키 를 통 해 값 을 추출 하여 실제 예 를 보 는 것 이다. /연습 2: 사냥꾼 이 숲 에 들 어 갔 을 때 멧돼지 세 마 리 를 발 견 했 습 니 다. 멧돼지 의 체중 은 각각 100, 200, 300 이 었 습 니 다. 그런데 사냥꾼 은 200 근 의 멧돼지 만 잡 으 려 고 했 습 니 다. 그래서 사냥 을 시 작 했 습 니 다. 사냥 을 한 후에 100 근 의 멧돼지 를 발 견 했 습 니 다. 그 는 200 근 까지 계속 사냥 을 했 습 니 다. 그 는 드디어 집에 돌아 갈 수 있 게 되 었 습 니 다!KVC 로 써 주세요.
//   :          ,      ?

main.m#import #import "Person.h" #import "Pig.h" #import "Forest.h" int main (int argc, const char * argv []) {/ / 실례 화 Person * person = [[Person alloc] init]; Pig * pig = [[[Pig alloc] init]; Pig * pigI = [[[Pig alloc] init]; Pig * pigII = [[Pig alloc] init];
//    
   [person setValue:" " forKey:"name"];
   [pig setValue:"100" forKey:"weight"];
   [pigI setValue:"200" forKey:"weight"];
   [pigII setValue:"300" forKey:"weight"];
//      ,       
   Forest *forestI = [[Forest alloc]init];
     NSArray *array  = @[pig , pigI , pigII];
[forestI setValue:array forKey:"array"];
   //
   [person setValue:
"200" forKey:"target"];
   //
   int target = [[person valueForKey:
"target"] intValue];
//       100  
   for (int i = 0 ; i < [array count]; i++) {
//          
       Pig *pigTmp = array[i];
       // 100 , String , int
       int weightTmp = [[pigTmp valueForKey:@"weight"]intValue];
if (weightTmp  100) {
           NSLog(" !");
       }
       // , 200
       if(weightTmp  target){
           NSLog(
" ");
           break;
       }else{
           NSLog(" ! :%",[pigTmp valueForKey:@"weight"]);
       }
}

Person.h
#import #import "Pig.h" @interface Person : NSObject@property(nonatomic,strong)NSString *name;@property(nonatomic,strong)Pig *hunterBoar;@property(nonatomic,assign)int target;@end
Pig.h
#import
@interface Pig : NSObject@property(nonatomic,assign)int weight;@end
Forest.h
#import @interface Forest : NSObject@property(nonatomic,strong)NSArray *array;@end
앞으로 도 확장 지식 이 있 습 니 다! avg:
NSLog(
"돼지 평균 체중% ",[forestI valueForKeyPath:" array. @ avg. weight ");count:
NSLog(
"돼지 는% ",[forestI valueForKeyPath:" array. @ count "] 가 있다.max:
NSLog(
"가장 질 좋 은 돼지 는% ",[forestI valueForKeyPath:" array. @ max. weight "] 이다.min:
NSLog(
"모두 살코기 인 돼지% ",[forestI valueForKeyPath:" array. @ min. weight "];sum:
NSLog(
"돼지 총화% ",[forestI valueForKeyPath:" array. @ sum. weight "];
배열 의 경우 @ distinctUnionOfObjects: 지정 한 속성 을 되 돌려 주 고 무 거 운 값 을 되 돌려 주 는 배열 @ unionOfObjects: 지정 한 속성의 값 을 되 돌려 주 는 배열 입 니 다. 무 거 운 속성 을 가지 지 않 는 값 은 비어 있 을 수 없습니다. 그렇지 않 으 면 이상 이 발생 합 니 다.
NSArray *array2 = [@3,@2,@1,@2];
   NSArray *array3 = [array2 valueForKeyPath:
"unionOfObjects.self"];
   NSLog(
"—————————————%@——————————————",array3);
NSArray *array4 = [array2 valueForKeyPath:"@distinctUnionOfObjects.self"];
   NSLog(
"%@",array4);

좋은 웹페이지 즐겨찾기