我正在尝试对我通过IB设置的对象进行一些动画制作。我正在向我的.h添加一个前向声明:
@class MySpecialClass;
然后设置如下属性:
@property (nonatomic, retain) IBOutlet MySpecialClass *specialClass;
我希望能够使用specialClass
隐藏setAlpha
,但在尝试编译时,我从xcode收到以下错误。
Receiver type 'MySpecialClass' for instance message is a forward declaration.
我是否需要导入我的课程而不是转发声明?如果我不需要,我不想输入任何不必要的东西。
答案 0 :(得分:49)
前向声明只告诉编译器,“嘿,我知道我声明了你不认识的东西,但是当我说@MyClass时,我保证会在实现中#import它。”
你使用前向声明来阻止像循环包含的东西(MyClass导入你导入MyClass的YourClass ......),但你用你的代码做的'承诺'是你以后#import它
答案 1 :(得分:5)
您需要导入它。前向声明只是为了使这个类存在的编译器静音,但它不知道它的成员,方法,属性,大小......