Процесс перехода проекта из коллекции классов в .dylib? - PullRequest
0 голосов
/ 03 ноября 2010

Я работаю над любимым проектом уже несколько недель, и начинаю думать, что он может быть использован мной и несколькими друзьями. В настоящее время это действительно просто куча классов Objective-C в проекте XCode с функцией main (), которую я использовал для тестирования различных функций. В дальнейшем кажется, что проще использовать эту библиотеку в проектах, если я упакую ее в файл .dylib. Как я обнаружил с другими языками, выполнение этого в качестве запоздалой мысли - это неприятность, которая в идеале отбирается до самой низкой ступени. :)

Я очень новичок в мире Objective-C / XCode, но в соответствии с «Темами по программированию динамических библиотек» от Apple , у меня сложилось впечатление, что это просто вопрос перенастройки моего интерфейса файлы в формате:

@protocol Person
- (void)setName:(NSString*)name;
- (NSString*)name;
@end

@interface Person : NSObject <Person> {
    @private
NSString* _person_name;
}
@end

(взято из ссылочного документа Apple).

Где: Я определяю протокол, который содержит методы, которые я хочу включить для классов, которые должны содержаться в .dylib, а затем определяю интерфейс, который подклассы NSObject реализуют вышеупомянутый протокол и объявляют здесь ивары.

Несколько вопросов:

Могу ли я опустить методы из протокола, которые я не хочу "экспортировать" в dylib?

Если у меня есть подклассы класса в dylib, я создам другой протокол для подкласса и заставлю суперкласс вновь созданного класса реализовать этот протокол? Например, если бы я был подклассом человека:

@protocol CatPerson
/* any additional methods for CatPerson not in Person */
- (void) protractClaws;
- (void) retractClaws; 
@end

@interface CatPerson : Person <CatPerson> {
    @private
/* any additional ivars for CatPerson not in Person */
NSNumber *clawCount;
}

Вероятно, это очень тривиальный вопрос, но я пытаюсь выяснить все, что мне нужно сделать, прежде чем пройти сквозь скрежет зубов, переводя все классы в .dylib.

1 Ответ

0 голосов
/ 03 ноября 2010

Project-> New Target… выберите «dylib» на панели, которую вы получите. Сделайте это текущей целью. удерживая клавишу Control, щелкните заголовок таблицы групп и файлов, установите флажок «целевое членство». Установите флажки рядом с файлами, которые вы хотите включить в свой dylib.

...