1

我有一个这样声明的类/超类对:

@class WSStatement;
@interface WSIfStatement : WSStatement
@property (nonatomic, retain) WSStatement *thenstatement;
@end

我使用Core Data 创建了一个子类的实例并将它分配给一个WSStatement * 指针(即超类)。稍后我想向特定于子类的对象发送一条消息,编译器给我一个警告说“找不到实例方法(返回类型默认为'id')”

我试过这样铸造....

[(WSIfStatement *)statement setThenStatement:aVariableParameter];

但警告仍然存在。该程序完美执行,但我无法摆脱讨厌的编译器警告。我在任何地方都找不到完整的正式的 Objective-C 语法描述,所以如果答案很明显,我深表歉意!

谢谢

4

3 回答 3

2

如果不是拼写错误,那么问题是您调用了错误的方法。

@property (nonatomic, retain) WSStatement *thenstatement;

//Will be called with a lowercase s for statement
[(WSIfStatement *)statement setThenstatement:aVariableParameter];

此外,您不能只转发声明您继承的类。您将需要包含WSStatement. 如果您仍然有错误,请确保您thenstatement在实现中进行综合。

于 2012-04-17T15:08:08.617 回答
1

属性合成了吗?在您的 .m 文件中使用:

@synthesize thenstatement;

这将生成 set 函数。

于 2012-04-17T15:04:34.863 回答
0

尝试添加#import "WSIfStatement.h"到您正在拨打电话的 .m 文件中。

于 2012-04-17T15:01:28.093 回答