zoukankan      html  css  js  c++  java
  • KVC

    //  UserModel.h
    //  KVC
    //
    //  Created by 张国锋 on 15/7/20.
    //  Copyright (c) 2015年 张国锋. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface UserModel : NSObject
    
    @property (nonatomic,strong)NSString * userName;
    
    @end
    
    //  UserModel.m
    //  KVC
    //
    //  Created by 张国锋 on 15/7/20.
    //  Copyright (c) 2015年 张国锋. All rights reserved.
    //
    
    #import "UserModel.h"
    
    @implementation UserModel
    
    @end
    
    
    //  StudentModel.h
    //  KVC
    //
    //  Created by 张国锋 on 15/7/20.
    //  Copyright (c) 2015年 张国锋. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface StudentModel : NSObject
    
    @property (nonatomic,strong)NSString * studentName;
    @property (nonatomic,strong)NSString * sex;
    /*........*/
    @end
    
    
    //  StudentModel.m
    //  KVC
    //
    //  Created by 张国锋 on 15/7/20.
    //  Copyright (c) 2015年 张国锋. All rights reserved.
    //
    
    #import "StudentModel.h"
    
    @implementation StudentModel
    {
        NSString *_age;
        NSArray *_friends;
    }
    
    -(void)setValue:(id)value forUndefinedKey:(NSString *)key{
        NSLog(@"UndefinedKey:%@",key);
    }
    
    @end
    
    //  ViewController.h
    //  KVC
    //
    //  Created by 张国锋 on 15/7/20.
    //  Copyright (c) 2015年 张国锋. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController
    
    
    @end
    
    
    //
    //  ViewController.m
    //  KVC
    //
    //  Created by 张国锋 on 15/7/20.
    //  Copyright (c) 2015年 张国锋. All rights reserved.
    //
    
    #import "ViewController.h"
    #import "UserModel.h"
    #import "StudentModel.h"
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    //    UserModel *userModel=[UserModel new];
        UserModel *userModel=[[UserModel alloc]init];
        userModel.userName=@"邓超";
        NSLog(@"%@",userModel.userName);
        
        
        StudentModel *studentModel=[StudentModel new];
        //原理:编译器会首先查找setStudentName,会从属性里面去找studentName,如何再没找到,他会找_studentName。
        [studentModel setValue:@"孙俪" forKey:@"studentName"];
        NSLog(@"%@",[studentModel valueForKey:@"studentName"]);
        
        [studentModel setValue:@"18" forKey:@"age"];
        NSLog(@"%@",[studentModel valueForKey:@"age"]);
        
        
        [studentModel setValue:@[@"Baby",@"daheiniu",@"猎豹凯"] forKey:@"friends"];
        NSLog(@"%@",[studentModel valueForKey:@"friends"]);
        
        NSDictionary *dic=[NSDictionary dictionaryWithObjects:@[@"18",@"范爷",@"女"] forKeys:@[@"age",@"studentName",@"seex"]];
        StudentModel *fanye=[StudentModel new];
        [fanye setValuesForKeysWithDictionary:dic];
        
        
    
        
    //    [studentModel setValuesForKeysWithDictionary:];
        //
        
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
    
  • 相关阅读:
    npm 与 yarn 发展史
    关于oracle sql语句查询时表名和字段名要加双引号的问题
    Navicat工具mysql转库oracle步骤
    Linux根目录扩容方法及其涉及的相关磁盘操作
    Oracle中的数据类型详解
    一张图看懂钢铁生产工艺流程
    MYBATIS-PLUS关联查询,一对一、一对多
    直接替换Springboot jar包中的文件
    springboot配置数据库密码特殊字符报错问题
    教你一招,把 Win10 更新暂停到 N 年后的神奇方法
  • 原文地址:https://www.cnblogs.com/0515offer/p/4665452.html
Copyright © 2011-2022 走看看