Как добавить дополнительные файлы .h и .m в проект Obj-C - PullRequest
0 голосов
/ 19 января 2019

При создании проекта в прямом «C» я могу разделить длинный код на несколько групп H / C без проблем.Однако, хотя я уже несколько лет играю в Obj-C, я все еще не могу понять следующую фундаментальную проблему (возможно, из-за моего старого стиля мышления в стиле C и возраста прадедушки?), Который привел кпривычка писать огромные монолитные файлы, которые трудно читать / редактировать и т. д. Я перепробовал все, что мог придумать, и потратил недели на поиск в сети ответов, но все безрезультатно.

Просто предположим, что я создаюэкземпляр NSObject с именем AppController, который содержит необходимые файлы h / m.Файл интерфейса в основном выглядит так:

#import <Cocoa/Cocoa.h>

@interface AppController : NSObject
{
    IBOutlets etc here...
}

method declarations here…

@end

, а файл реализации выглядит так:

#import "AppController.h"

@implementation AppController

actual methods here …

@end

СЕЙЧАС предположим, что я хочу добавить два дополнительных файла h / m, называемых 'температура.Другими словами, мне нужно четыре файла в моем проекте, а именно:

AppController.h
AppController.m
temperature.h
temperature.m

Я получаю, что мне, конечно, придется импортировать файл интерфейса температуры в мой основной файл реализации AppController, ноМне также нужно создать их как классы NSObject?Эти шаблоны поставляются со своими собственными предварительно написанными ссылками на super и т. Д., Которые вызывают всевозможные проблемы с компилятором и еще больше путаницы.

Возможно, следуя приведенным выше примерам моего супер-базового кода, как бы температура.h,Файлы температуры.m (и AppController.m) должны быть размещены так, чтобы они могли общаться друг с другом?Куда я иду не так?

1 Ответ

0 голосов
/ 21 января 2019

Поскольку файлы temperature содержат бесплатные функции, вам больше ничего не нужно делать.Вы можете просто вызывать функции C из классов Objective-C.Если вы хотите сделать из них класс, вы тоже можете это сделать.Он не должен наследоваться от NSObject, но это может быть полезно, потому что он позволяет вам вызывать различные NSObject методы, такие как -respondsToSelector:, -isKindOfClass: или -performSelector:.

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