OC键值编程(KVC)-Key路径

Object-C技术学习,更多资源请访问 https://www.itkc8.com

//  main.m

//  OC键值编程(KVC)-Key路径

//

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

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

//

 

/*

 1.KVC除了操作属性之外,还可以操作对象的“复合属性”。(怎么感觉是初始化一个对象)

 2.操作Key路径的方法:根据Key路径设置值用setValue:forKeyPath:  根据Key路径获取属性值用valueForKeyPath:

 3.KVC操作对象的性能比通过setter和getter方法操作对象的性能更差,但是更加简洁、通用、灵活。

 */

 

 

#import <Foundation/Foundation.h>
#import "MyClass.h"

//定义部分
@interface Item : NSObject
//使用@property定义两个成员变量
@property (nonatomic,strong) MyClass* myClass;
@property (nonatomic,assign) int amount;
-(int) totalPrice;
@end

//实现部分
@implementation Item
-(int) totalPrice{
    return _amount*(_myClass.price);
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //创建对象
        Item* item = [[Item alloc] init];
        
        //用KVC方式为amount设置属性值
        [item setValue:@"10" forKey:@"amount"];
        [item setValue:[[MyClass alloc]init] forKey:@"myClass"];
        
        //用setValue:forKeyPath设置myClass属性name的值
        [item setValue:@"IOS宝典" forKeyPath:@"myClass.name"];
        [item setValue:[NSNumber numberWithInt:12] forKeyPath:@"myClass.price"];
        
        //获取值
        NSLog(@"总共:%@个",[item valueForKey:@"amount"]);
        NSLog(@"名字是:%@",[item valueForKeyPath:@"myClass.name"]);
        NSLog(@"总价是:%@",[item valueForKeyPath:@"totalPrice"]);
        
    }
    return 0;
}

 

//
//  MyClass.h
//  OC键值编程(KVC)-Key路径
//
//  Created by Goddog on 15/1/3.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface MyClass : NSObject
@property (nonatomic,copy) NSString* name;
@property (nonatomic,assign) int price;
@end

 

//
//  MyClass.m
//  OC键值编程(KVC)-Key路径
//
//  Created by Goddog on 15/1/3.
//  Copyright (c) 2015年 Goddog. All rights reserved.
//

#import "MyClass.h"

@implementation MyClass
@end

 

Object-C技术学习,更多资源请访问 https://www.itkc8.com

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值