KVC

#import#import "Dog.h"

@interface Person : NSObject

@property(nonatomic,strong)Dog *dog;

@end


#import "Person.h"

@interface Person ()

@property(nonatomic,strong)NSString *sex;

@end

@implementation Person

-(NSString *)description

{

return [NSString stringWithFormat:@"sex === %@",_sex];

}

-(void)setValue:(id)value forUndefinedKey:(nonnull NSString *)key

{

NSLog(@"你给不存在的属性赋值了");

}

-(id)valueForUndefinedKey:(NSString *)key

{

return @"没有你要取的属性";

}


#import@interface Dog : NSObject

@property(nonatomic,strong)NSString *name;

@property(nonatomic,strong)NSString *age;

@end



#import#import "Person.h"

#import "Dog.h"

int main(int argc, const char * argv[]) {

@autoreleasepool {

Person *person = [[Person alloc]init];

[person setValue:@"北京" forKey:@"sex"];

NSLog(@"%@",[person valueForKey:@"sex"]);

[person setValue:@"北京" forKey:@"aaa"];

NSLog(@"%@",[person valueForKey:@"aaa"]);

person.dog = [[Dog alloc]init];

[person setValue:@"aaa" forKeyPath:@"dog.name"];

NSLog(@"%@",[person valueForKeyPath:@"dog.name"]);

}

return 0;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...
    朽木自雕也阅读 5,476评论 6 1
  • 目录:1.KVC用法;2.KVC和对象的setter、getter方法的区别;3.key和keyPath的区别;4...
    伦伦子_f7b3阅读 3,693评论 0 1
  • 首先理清思路 kvc取值时,需注意的几点问题; 讲解一下kvc各种问题,包括基础属性赋值,属性对象的属性赋值,私有...
    magicMushroom阅读 5,466评论 1 8
  • 由于Objective-C是基于Smalltalk进行设计的,所以它具有动态加载、动态绑定等特性。Key-valu...
    赵亦晨阅读 4,717评论 0 0
  • 熟悉好莱坞的朋友们,可能会经常看到好莱坞男星的街拍,如下图: 没错,小伙伴眼尖的发现,这些好莱坞男星都酷爱棒球帽!...
    61c64b8b9616阅读 4,761评论 0 0