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
以上为个人理解,欢迎赐教。