【发布时间】:2014-03-29 23:02:57
【问题描述】:
从 Apple 的文档中,我发现了以下内容:
使用键路径设置值与使用设置值不同 Objective-C 属性。您不能使用属性表示法来设置 转换值。您必须使用 setValue:forKeyPath: 方法 前面的关键路径字符串。
据我了解,我们必须拥有 ivars 的属性才能使用 KVC。
但从上段来看,似乎另有说法:
使用键路径设置值与使用设置值不同 Objective-C 属性。您不能使用属性表示法来设置 转换值。
谁能给我解释一下为什么?也许我遗漏了一些东西,因为一直以来我的理解是我们必须具有使用 KVC 的属性。
【问题讨论】:
-
我认为它只是说这行不通:
setValue:value forKey:@"view.transform。你必须使用setValue:value forKeyPath:@view.transform。 -
@ScottBerrevoets 你的意思是没有双引号但保留 @ 符号?
-
对不起,我的错字。我的意思是
forKeyPath部分,而不是forKey。 -
@ScottBerrevoets 抱歉,没听懂。你的意思是:
setValue:value forKeyPath:view.transform?这行不通。 -
来自developer.apple.com/library/mac/documentation/cocoa/reference/…: keyPath 形式为relationship.property(具有一个或多个关系)的关键路径:例如“department.name”或“department.manager.lastName”。 你不能在
setValue:forKey:中做“department.name”,你需要setValue:forKeyPath:。
标签: ios objective-c key-value-coding