“无法找到接口声明错误...”我遇到了似乎对我没有任何意义的Objective-C问题。我是一位相对熟练的ObjC程序员,理解整个“前向声明”的概念,但是这个让我挠头。所以这里的交易:@class
ClassA是我的Xcode项目中的一个类,只是项目。 ClassB是ClassA的一个子类,它是公共的,并被导入到我的框架头中。
我得到“无法找到'ClassA'的接口声明,'ClassB'的超类...”错误时,建设。我已经将@class ClassA;
前向声明放在ClassB.h中,但这似乎不能解决问题。当我将@class ClassA;
更改为#import ClassA.h
时,它工作正常。但是,由于ClassA仅用于项目,因此依赖项目无法构建ClassB,因为它无法访问ClassA的源。
任何帮助将不胜感激,我希望这是有道理的。谢谢!
嗯,我想尽可能多。但是,这使我不确定在这里做什么。我想我留下的唯一路线是公开超类,并简单地记录说不建议使用超类。 – Grimless 2010-08-07 19:56:30
啊,是的。抽象的超类。我建议你阅读关于Class Clusters的内容,因为它们会延续类似的设计模式。 – bbum 2010-08-07 20:51:41
不幸的是,我不相信类集群解决这个问题。类集群隐藏提供特定功能的子类。我试图隐藏*超类*,同时仍然公开可用的子类。无论如何,谢谢你的洞察力! – Grimless 2010-08-08 00:17:36