请问KVC,属性是否存在,如何判断?

iOS 码拜 9年前 (2015-05-01) 1018次浏览 0个评论
 

关于KVC的  setValue,我想setValue之前,先看看该属性是否存在,如果不存在,就不调用setValue,如果存在,就setValue,
请问这个属性是否存在,可以做么?如何做?

请问KVC,属性是否存在,如何判断?
10分
这样就行了:

[someObject respondsToSelector:NSSelectorFromString(@"foo")]

检查返回值

请问KVC,属性是否存在,如何判断?
10分
KVC定义了一种可以按“名称”来访问对象属性的机制。如要访问person 类中的name属性,我们除了可以使用“点语法”访问外也可以使用KVC的方式来访问

[person setValue:@"zhangsan" forKey:@"name"]; 
////基本等同于 
person.name = @"zhangsan"

方法

- (BOOL)respondsToSelector:(SEL)aSelector

  
用于判断类型或对象有没有某个方法,所以可以通过这个方法来判断person 实例是否有name属性(通过属性的setter方法)

[person respondsToSelector:@selector(setName:)];
/////or 
[person respondsToSelector:NSSelectorFromString(@"setName:")];  //////通过oc的动态调用方法

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明请问KVC,属性是否存在,如何判断?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!