我声明了一个类/超类对:
@class WSStatement;
@interface WSIfStatement : WSStatement
@property (nonatomic, retain) WSStatement *thenstatement;
@end
我使用Core Data创建子类的实例,并将其分配给WSStatement *指针(即超类)。稍后我想向特定于子类的对象发送消息,编译器给我一个警告,说“找不到实例方法(返回类型默认为'id')”
我试过像这样投射......
[(WSIfStatement *)statement setThenStatement:aVariableParameter];
但警告仍然存在。该程序执行完美,但我无法摆脱讨厌的编译器警告。我无法在任何地方找到完整的正式Objective-C语法描述,所以如果答案显而易见,我会道歉!!
由于
答案 0 :(得分:2)
如果它不是拼写错误,那么问题是你正在调用错误的方法。
@property (nonatomic, retain) WSStatement *thenstatement;
//Will be called with a lowercase s for statement
[(WSIfStatement *)statement setThenstatement:aVariableParameter];
此外,您不能只是转发声明您继承的类。您需要包含WSStatement
的标头。如果您仍然有错误,请确保在实现中合成thenstatement
。
答案 1 :(得分:1)
您是否合成了这些属性?在你的.m文件中使用:
@synthesize thenstatement;
这将生成设置函数。
答案 2 :(得分:0)
尝试将#import "WSIfStatement.h"
添加到您正在进行该通话的.m文件中。