键值编码(KVC)-简单的KVC

//

//  main.m

//  KVC

//

//  Created by Goddog on 15/1/3.

//  Copyright (c) 2015 Goddog. All rights reserved.

//

/*

 1.我们可以通过settergetter方法来设置和修改对象的属性,同时也可以通过键值编码(KVC)来操作对象属性。

 2.何为KVC:以字符串的形式间接的操作对象的属性。

    设置值用 setValue:属性值 forKey:属性名

    获取值用 valueForKey:属性名

 */

#import <Foundation/Foundation.h>

//接口部分
@interface User : NSObject

//没有实现setter和getter方法的成员变量,没实现啊
{
    @package
    NSString* size;
    NSString* _size;
}

//实现类setter和getter方法的成员变量
@property (nonatomic,copy) NSString* name;
@property (nonatomic,copy) NSString* pass;
@property (nonatomic,copy) NSData* birth;
@end

//实现部分
@implementation User
//定义类age成员变量
{
    int age;
}
@end

//测试部分
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建对象
        User* user = [[User alloc] init];
        
        //使用KVC方式设置值
        [user setValue:@"HUXU" forKey:@"name"];
        [user setValue:@"123" forKey:@"pass"];
        [user setValue:[[NSData alloc] init] forKey:@"birth"];
        
        //使用KVC方式获取值
        NSLog(@"姓名:%@,密码:%@,",[user valueForKey:@"name"],[user valueForKey:@"pass"]);
        NSLog(@"年龄:%@",[user valueForKey:@"birth"]);
        
        //---------------------------------------------
        //使用KVC方式为size属性赋值,KVC的搜索顺序为:setSize:方法、_size成员变量、size成员变量。
        [user setValue:@"big" forKey:@"size"];
        //访问name和_name两个成员变量的值
        NSLog(@"size成员变量的值是:%@,  _size成员变量的值是:%@",user->size,user->_size);
        
        //使用KVC方式对age赋值,将会导致类实现部分定义的age成员变量被赋值
        [user setValue:[NSNumber numberWithInt:10] forKey:@"age"];
        //访问实现部分的成员变量
        NSLog(@"age的值是:%@",[user valueForKey:@"age"]);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值