在哪种情况下,对象不符合键值编码?

Tha*_*nks 3 iphone key-value key-value-coding

目前我正在学习关键值编码的所有内容.

他们在文档中说:

密钥路径序列中的任何不符合适当密钥的键值编码的对象都会收到valueForUndefinedKey:消息.

我试图想象一个对象不符合键值编码的情况.怎么会发生这种情况?当我将UIView子类化时,这显然是合规的,对吧?但是当我用NSObject作为超类创建自己的对象时,那是怎么回事?当我创建一个没有超类的类时,那么肯定这不符合kv吗?

Chu*_*uck 8

如果您仔细阅读,您会看到它"符合适当密钥的键值编码".这基本上意味着您没有适合您要求的密钥的KVC方法.因此,如果我这样做[[NSString stringWithString:@"foo"] valueForKey:@"dippingSauce"],它将落到valueForUndefinedKey:原因,因为NSString与键"dippingSauce"不符合KVC - 它没有dippingSauce实例方法或dippingSauceivar.

  • 在编程示例中成功使用"dippingSauce"的+1. (3认同)