【问题标题】:foundation header instead of cocoa header for objective-c class (NSObject subclass)用于objective-c类(NSObject子类)的基础头而不是可可头
【发布时间】:2011-04-24 09:30:50
【问题描述】:

在 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 的子类,因此只需要基础标头。

【问题讨论】:

  • 你认为这门课为什么适合 Cocoa Touch?
  • 我选择的类是 mac os x 上 cocoa 的 Objective-c 类。 iOS 上 cocoa touch 的 Objective-c 类使用 而不是

标签: objective-c cocoa macos xcode4


【解决方案1】:

这对于 Cocoa 和 Cocoa Touch 都是有效的类。我相信最近版本的 Xcode 会根据您指定的超类来决定是导入 Cocoa/Cocoa.h 还是 Foundation/Foundation.h。如果您创建的类继承自 NSObject,则无需导入整个 Cocoa — 仅 Foundation 就足够了。

【讨论】:

    【解决方案2】:

    您发布的示例是一个完全有效的 Mac OS X Cocoa 类。 (即:该类与 iOS/Cocoa Touch 无关。)

    就您对 iOS 使用 &lt;Foundation/Foundation.h&gt; 的评论而言 - 情况并非如此 - 如果您查看 &lt;Cocoa/Cocoa.h&gt; 内部,您会发现它实际上包括基础标头本身以及其他项目,例如 CoreData等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多