基础标头而不是 Objective-C 类(NSObject 子类)的 cocoa 标头

发布于 2024-11-02 23:19:20 字数 553 浏览 1 评论 0原文

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

in xcode 4, when i try to create a class, for example "ABClass" using a template for Mac OS X, the end result when the file created is:

//header
#import <Foundation/Foundation.h>


@interface DBFTimer : NSObject {
@private

}

@end

and the other file

//.m file
#import "DBFTimer.h"


@implementation DBFTimer

- (id)init
{
self = [super init];
if (self) {
    // Initialization code here.
}

return self;
}

- (void)dealloc
{
[super dealloc];
}

@end

is this a bug? and what is the solution? (running Xcode 4 Build 4A304a)

EDIT: ok now i understand why, as this is an subclass of NSObject, thus the foundation header only is required.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

鲜血染红嫁衣 2024-11-09 23:19:20

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

That’s a valid class for both Cocoa and Cocoa Touch. I believe recent versions of Xcode decide whether to import Cocoa/Cocoa.h or Foundation/Foundation.h based on what you’ve specified as the superclass. If the class you’ve created inherits from NSObject, there’s no need to import the whole of Cocoa — Foundation alone suffices.

梦里梦着梦中梦 2024-11-09 23:19:20

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

就您使用 对 iOS 的评论而言 - 情况并非如此 - 如果您查看在 中,您会发现它实际上包含基础标头本身以及其他项目,例如 CoreData 等。

The example you've posted is a perfectly valid Mac OS X Cocoa class. (i.e.: There's nothing about that class that's iOS/Cocoa Touch related.)

In terms of your comment about iOS using <Foundation/Foundation.h> - this isn't the case - if you look inside <Cocoa/Cocoa.h>, you'll find that it actually includes the foundation header itself as well as other items such as CoreData, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文