在xcode 4中,当我尝试创建一个类时,例如使用Mac OS X模板的“ABClass”,创建文件时的最终结果是:
//header
#import <Foundation/Foundation.h>
@interface DBFTimer : NSObject {
@private
}
@end
和另一个文件
//.m file
#import "DBFTimer.h"
@implementation DBFTimer
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
- (void)dealloc
{
[super dealloc];
}
@end
这是一个错误吗?什么是解决方案? (运行Xcode 4 Build 4A304a)
编辑:好的,我现在理解为什么,因为这是NSObject
的子类,因此只需要基础标题。
答案 0 :(得分:3)
这是Cocoa和Cocoa Touch的有效类。我相信Xcode的最新版本决定是根据你指定为超类的内容导入Cocoa / Cocoa.h或Foundation / Foundation.h。如果您创建的类继承自NSObject
,则无需单独导入整个Cocoa - Foundation。
答案 1 :(得分:0)
您发布的示例是完全有效的Mac OS X Cocoa类。 (即:那个类与iOS / Cocoa Touch无关。)
关于使用<Foundation/Foundation.h>
对iOS的评论 - 情况并非如此 - 如果您查看<Cocoa/Cocoa.h>
内部,您会发现它实际上包含基础标题本身以及其他诸如CoreData等项目