【发布时间】:2011-06-15 21:21:16
【问题描述】:
我今天在看一段代码,注意到这个特定的编码器使用点符号来访问实例方法(这些方法不接受值,它们只是返回值)。
例如:
@interface MyClass : NSObject {
}
-(double)add;
@end
@implementation MyClass
-(double)valueA {
return 3.0;
}
-(double)valueB {
return 7.0;
}
-(double)add {
return self.valueA + self.valueB;
}
@end
他在他的代码中这样做了,编译器没有抱怨,但是当我像上面的示例那样在我的代码中尝试它时,我收到以下错误:“请求成员“valueA”在不是结构或联合的东西中”。我错过了什么,知道吗?
【问题讨论】:
-
这些是实例方法(以
-开头),而不是类方法(以+开头)。 -
@Jeremy 你是对的,我只是将措辞改为“实例”而不是“类”方法。他正在使用 self.instanceMethod 来访问该方法返回的值。如果编译器不抱怨,我无法在我的代码中复制它。
-
在您向我们展示您在做什么之前,我们无法告诉您您缺少什么。
标签: iphone objective-c ios key-value-coding