IOS --- KVC

KVC就是对象属性另一种方式的写(setValueForKey)与读(ValueForKey)。

//  Book.h

#import <Foundation/Foundation.h>

@interface Book : NSObject{
    float price;
}

@end
----------------------------
//  Person.h

#import <Foundation/Foundation.h>
@class Book;

@interface Person : NSObject{
    NSString *name;
    Book *book;
}

@end
------------------------------
#import "ViewController.h"
#import "Person.h"
#import "Book.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    Person *person = [[Person alloc] init];
    Book *book = [[Book alloc] init];
    
    [person setValue:book forKey:@"book"];
    [person setValue:@19.5 forKeyPath:@"book.price"];
    [person setValue:@"jack" forKey:@"name"];
    
    NSLog(@"price is %@",[person valueForKeyPath:@"book.price"]);
    NSLog(@"Name is %@",[person valueForKey:@"name"]);
}
--------------------
2016-05-09 22:52:57.370 kvc[1704:97420] price is 19.5
2016-05-09 22:52:57.371 kvc[1704:97420] Name is jack

以上为个人理解,欢迎赐教。

原文地址:https://www.cnblogs.com/garywong1949/p/5475772.html