【发布时间】:2014-04-05 18:31:25
【问题描述】:
假设我在 BaseClass.h 中有类 BaseClass。 我想创建一个 SubClass 并从我的 BaseClass 继承,就这么简单。 但是我想在子类的接口中进行继承。
// SubClass.h
//#import "BaseClass.h" -I dont want to make import to the header (Better convention - I think so).
//@class BaseClass; - That will work only for declaring an instance/property.
@interface SubClass : BaseClass{
}
我还想将这两个类保存在单独的文件中。我是否有一个简单/优雅的解决方案,例如在 Xcode 项目中对我的类进行分组,以便它们能够相互识别。
【问题讨论】:
-
你为什么不想做#import?这很简单。是的,您可以使用 .pch 文件,但它会产生奇怪的错误。
-
不是我“不想”。我刚刚读到将所有导入文件放在 .m 文件中并在 .h 文件中使用 @class 更好(某种约定),但在这种情况下它不起作用。所以我想也许还有另一种选择?也可能不是。
-
现在你被告知答案:“不是”。
-
试试这个。在 Xcode 中,在您的项目中,创建一个新的 UIView 子类(选择 File > New,iOS > Cocoa Touch > Objective-C Class,类 MyView 的 UIView 子类。现在再次执行相同的操作,但这次将其设为 MyOtherView,即MyView 的子类。看看 OtherView.h。他们已经导入了 MyView.h!这正是你拒绝做的事情。请注意:如果你取出那个导入,项目将无法编译!
-
但是,您可以将
UIKit从 MyView 标头中导入,一切仍然有效。为什么?因为 .pch 文件导入UIKit,因此其他所有内容都隐式导入它。
标签: ios objective-c inheritance