1

说我在一个myClass.m

我知道我可以做到:

SEL aSelector = @selector(methodName);

例如,我可以稍后做NSStringFromSelector(@selector(Bookmark))

在这里,methodName 是 myClass 的选择器。

假设我有一个类型为 myPropertyClass 的名为 myProperty 的属性,并且该类有一个选择器 myPropertymethodname

如果说我想使用字符串表达该选择器,我应该如何访问它。

基本上有时我们想使用 valueForKey 而不是直接访问访问器。但是,这很容易输入错误。我想改用 NSStringFromSelector

SEL aSelector = @selector(myPropertyClass.myPropertymethodname);

不工作。

4

1 回答 1

2

对于属性的默认命名 getter:

SEL aSelector = @selector(myPropertymethodname);

对于属性的默认命名设置器:

SEL aSelector = @selector(setMyPropertymethodname:);
                          ^^^^                   ^

然后只需确保选择器/属性声明在您正在编译的文件中可见。

请注意,选择器的名称不能限定为特定类。

于 2012-11-04T12:00:16.093 回答