基础类消息是前向声明错误
Posted
技术标签:
【中文标题】基础类消息是前向声明错误【英文标题】:Foundation class message is a forward declaration error 【发布时间】:2012-04-24 23:57:07 【问题描述】:NSHost *h = [NSHost hostWithName:name];
我从这行代码中得到两个错误
ARC Issue: Receiver 'NSHost' for class message is a forward declaration.
ARC Issue: No known class message for selector 'hostWithName:'
四处搜索,我发现前向声明错误通常是由于未能包含某些框架。不过,这种情况很奇怪,因为 NSHost 是 Foundation Framework 的一部分,它是在我的头文件中导入的。是的,我的实现导入了我的头文件。
对 NSHost 的 opt+click 表示 NSHost 是在 NSStream.h 中声明的,而不是在 NSHost.h 中声明的。 NSStream 头文件只声明@class NSHost
。
Product => Clean 也不能解决任何问题。我很困惑这里的问题是什么:(
编辑: 我认为问题在于 NSHost 不适用于 ios:-/
【问题讨论】:
【参考方案1】:您应该在文件顶部(或在共享 PCH 中)#importing。
或者,如果你真的真的想走手动路线,#import(假设文件存在)。
【讨论】:
嘿 bbum,我不确定我是否理解您的回答。我的类的头文件被导入到我的实现文件的顶部(我得到错误的地方),<Foundation/Foundation.h>
被导入到头文件的顶部。以上是关于基础类消息是前向声明错误的主要内容,如果未能解决你的问题,请参考以下文章
“接收器类型'CALayer'例如消息是前向声明”在这里是啥意思?