我有一些UILabels
与UIOutlet
属性相关联。我想通过KVC为标签设置text属性,因为我将label-property-names作为字符串。
所以,通常(没有KVC)我会像这样访问它们:
self.typeOfAssetLabel.text = @"Hello";
现在,KVC会是什么?
我试过了:
[self.typeOfAssetLabel setValue:@"test" forKey:@"text"];
这是有效的。但是这样我就不能用字符串设置属性名typeOfAssetLabel
。
我猜这应该有用
[self setValue:@"test" forKey:@"typeOfAssetLabel.text"];
但这样我得到的“不是键值兼容......”错误。什么是正确的方法。
答案 0 :(得分:2)
你想要的是:
[self setValue: @"test" forKeyPath: @"typeOfAssetLabel.text"];
当路径中有多个密钥时,诀窍是使用forKeyPath
而不是forKey
。