• KVC


    全称:Key-value observing

    用法:

    @interface Book : NSObject
    
    @property (nonatomic, strong) NSString *bookName;
    
    @end
    
    @interface Person : NSObject
    
    @property (nonatomic, copy) NSString *name;
    @property (nonatomic, assign) NSInteger age;
    @property (nonatomic, strong) Book *book;
    
    @end
    #import <Foundation/Foundation.h>
    #import "Person.h"
    #import "Book.h"
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            
            Person *p = [[Person alloc]init];
            
            //
            [p setValue:@"张三" forKey:@"name"];
            [p setValue:@"20" forKeyPath:@"age"];
            
            Book *book = [[Book alloc]init];
            p.book = book;
            [p setValue:@"算法导论" forKeyPath:@"book.bookName"];
            NSLog(@"%@, %@ , bookName: %@",p.name,[p valueForKey:@"age"],p.book.bookName);
            
            //字典
            book.bookName = @"数据结构";
            NSDictionary *dict = @{@"name":@"李四",@"age":@"40",@"book":book};
            [p setValuesForKeysWithDictionary:dict];
            NSLog(@"%@, %@ , bookName: %@",p.name,[p valueForKey:@"age"],p.book.bookName);
            
            //数组
            Person *p2 = [[Person alloc] init];
            p2.name = @"yellow Mokey";
            
            Person *p3 = [[Person alloc] init];
            p3.name = @"red dog";
            
            Person *p4 = [[Person alloc] init];
            p4.name = @"green chicken";
            
            NSArray *array = @[p2,p3,p4];
            
            // 把三个对象中的name 取出来
            NSArray *nameArray = [array valueForKeyPath:@"name"];
            
            NSLog(@"%@",nameArray);
        }
        return 0;
    }
  • 相关阅读:
    2020-08-20
    2020-08-19
    2020-08-14
    2020-08-13
    使用numpy实现机器学习模型
    分治法学习
    2020-08-09
    2020-08-02
    四月是你的谎言下载
    新博客
  • 原文地址:https://www.cnblogs.com/codelu/p/5198067.html
Copyright © 2020-2023  润新知