основной заголовок вместо какао-заголовка для класса target-c (подкласс NSObject) - PullRequest
0 голосов
/ 24 апреля 2011

в xcode 4, когда я пытаюсь создать класс, например "ABClass", используя шаблон для Mac OS X, конечный результат при создании файла:

//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, поэтому требуется только заголовок основания.

Ответы [ 2 ]

3 голосов
/ 24 апреля 2011

Это допустимый класс для Cocoa и Cocoa Touch.Я полагаю, что последние версии Xcode решают, импортировать ли Cocoa / Cocoa.h или Foundation / Foundation.h на основе того, что вы указали как суперкласс.Если созданный вами класс наследует от NSObject, нет необходимости импортировать весь Cocoa - достаточно только Foundation.

0 голосов
/ 24 апреля 2011

Пример, который вы опубликовали, является совершенно правильным классом Mac OS X Cocoa.(то есть: в этом классе нет ничего, что связано с iOS / Cocoa Touch.)

С точки зрения вашего комментария об использовании iOS <Foundation/Foundation.h> - это не так - если вы заглянете внутрь <Cocoa/Cocoa.h>, выВы увидите, что он на самом деле включает в себя сам заголовок основы, а также другие элементы, такие как CoreData и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...