Отображение заголовков в статической библиотеке iPhone

Я следовал этому руководству по настройке статической библиотеки. с общими классами из 3 проектов, над которыми мы работаем.

Это довольно просто, создайте новый проект статической библиотеки на xcode, добавьте туда код, измените роль некоторых заголовков с project на public. В учебнике говорится, что я должен рекурсивно добавить папку моей библиотеки в header search paths.

Это правильный путь?

Я имею в виду, что в моем библиотечном проекте у меня есть файлы, разделенные на такие папки, как Global/, InfoScreen/, Additions/. Я пытался настроить один файл LOKit.h в корневой папке, а внутри этого файла #import все, что мне нужно выставить. Таким образом, в моем хост-проекте мне не нужно рекурсивно добавлять папку в путь поиска заголовка, и я просто #import "LOKit.h".

Но я не мог заставить это работать, хост-проект не будет строить, жалуясь на все классы, которые я не добавил в LOKit.h, даже если проект библиотеки строится.

Итак, мой вопрос: каков правильный способ предоставления файлов заголовков при настройке проекта статической библиотеки Cocoa Touch в xCode?


person leolobato    schedule 20.04.2010    source источник


Ответы (2)


В итоге я настроил LOKit.h в корневой папке проекта следующим образом:

#import "Global/LOCommon.h"
#import "Additions/LOAdditions.h"
#import "View/LOCustomView1.h"
#import "View/LOCustomView2.h"

И в моем хост-проекте я установил переменную пути поиска заголовка в корневую папку моей библиотеки без рекурсии. Всякий раз, когда мне нужно, я просто импортирую LOKit.h.

Я также включил в этот библиотечный проект общие библиотеки (такие как JSON, FBConnect и Reachabillity), которые были общими для разных проектов. Таким образом, мне нужно только один раз обновить эти библиотеки в одном месте.

person leolobato    schedule 26.04.2010

При использовании статических библиотек я обычно иду одним из следующих двух способов:

Если я создал библиотеку сам и она несколько тесно связана с проектом, который использует библиотеку, я обычно создаю исходный корень для библиотеки в настройках XCode. Затем вы можете рекурсивно добавить исходный корень в качестве переменной к путям заголовков.

С другой стороны, если библиотека либо не принадлежит мне, либо поддерживается полностью отдельно от моего проекта, я обычно копирую версию библиотеки вместе с соответствующими заголовками в проект, используя ее, и ссылаюсь на них. Это немного более громоздко, если вам нужны постоянные обновления, но не ломает ваше приложение, если что-то в библиотеке меняется.

person Alfonso    schedule 21.04.2010
comment
Спасибо, ваше первое предложение было в значительной степени тем, что я уже делал. Но мне очень хотелось, чтобы папки не добавлялись в заголовки путей поиска рекурсивно, чтобы я мог выбирать, что выставлять, а что просто запутает пользователя библиотеки. - person leolobato; 26.04.2010