Руководство для Создания Вашей собственной Библиотеки для Какао (касание) разработка

Ах! Я понял это несколько дней назад, но не успел ответить. Я мог бы использовать локальные переменные, которые я перезаписывал только при выполнении инструкций.

Вот пример.

function retClone(bool) {
    return bool; // Returns same input context for example.
}

if (t = retClone(true)) {
    console.log(t); // true
    // t is truthy, because we get `true` returned.
}

if (t = retClone(false)) {
    // Wouldn't run.
    // t is falsy.
} else {
    console.log(t); // false
}

Спасибо всем, кто откликнулся. ~ Q

22
задан 18 revs 28 March 2009 в 13:30
поделиться

6 ответов

При выполнении этого для Mac Вы создали бы платформу. Однако Вы упоминаете UIView, так, очевидно, Вы работаете с iPhone. Apple не позволяет приложениям для iPhone динамично связываться против других библиотек во времени выполнения, таким образом, Ваша единственная опция состоит в том, чтобы создать статическую библиотеку. Статическая библиотека связана в исполняемый файл приложения, когда она создается.

К моему знанию в XCode нет никакого статического шаблона проекта библиотеки. То, что необходимо будет, вероятно, сделать, является запуском с другим шаблоном iPhone Xcode, и добавьте Статическую цель Библиотеки. Держитесь за цель приложения по умолчанию; можно использовать это для создания простого тестового приложения, чтобы удостовериться, что библиотека на самом деле работает.

Для фактического пользований библиотекой в приложении Вам будут нужны две вещи: скомпилированная библиотека (это имеет.a расширение), и все заголовочные файлы. В Вашем законченном приложении Вы свяжетесь против своей статической библиотеки, и Вы должны будете #import заголовочные файлы так, чтобы компилятор понял, какие классы, функции, и т.д. доступны ему. (Общая техника состоит в том, чтобы создать один заголовочный файл, который импортирует все другие. Тем путем только необходимо импортировать единственный файл в исходных файлах.)

Что касается создания Ваших собственных шаблонов, существует простое учебное руководство здесь, которое должно запустить Вас: http://www.macresearch.org/custom_xcode_templates можно, вероятно, скопировать шаблоны по умолчанию и просто настроить их для удовлетворения целям.

Синтаксис структуры похож на это:

typedef struct _MyPoint {
    CGFloat x;
    CGFloat y;
} MyPoint;

Структуры, объявляются в заголовочных файлах, таким образом, Вы можете (я верить), Command+Double Нажимают на название структуры, чтобы видеть, как оно объявляется.

Еще небольшой прием для создания структур должен сделать что-то вроде этого:

MyPoint aPoint = (MyPoint){ 1.5f, 0.25f };

Поскольку компилятор знает порядок полей в структуре, это может очень легко подойти значения, которые Вы предоставляете в фигурных скобках соответствующим полям. Конечно, более удобно иметь функцию как MyPointMake, таким образом, можно записать что как это:

MyPoint MyPointMake(CGFloat x, CGFloat y) 
    return (MyPoint){ x, y };
}

Обратите внимание, что это - функция, не метод, таким образом, это живет за пределами любого @interface или @implementation контекст. Хотя я не думаю, что компилятор жалуется, определяете ли Вы его в @implementation контекст.

CGPointMake определяется как, что известно как inline функция. Вы видите определение для этого в заголовочных файлах Какао, также. (Различие между подставляемой функцией и нормальной функцией - то, что компилятор может заменить вызов к CGPointMake с копией CGPointMake, который избегает издержек создания вызова функции. Это - довольно незначительная оптимизация, но для функции, настолько простой, это имеет смысл.)

16
ответ дан 29 November 2019 в 04:44
поделиться

320 проектов являются хорошим примером библиотеки классов iPhone. Вы в основном компилируете свой проект вниз в.a библиотеку и затем статически связываетесь против этого в Ваших клиентских проектах.

4
ответ дан 29 November 2019 в 04:44
поделиться

320 проектов походят на хорошую начальную точку действительно. Но этому недостает (я думаю) в:

  • имение в наличии библиотеки в новых проектах сразу же
  • имение в наличии новых классов под 'новым файлом'

Это - шаблоны файла и проект. Для получения дополнительной информации спросите Google.

1
ответ дан 29 November 2019 в 04:44
поделиться

Если Вы планируете выпуск этого на App Store, Вы, привычка может пользоваться Вашей библиотекой в способе, которым Вы хотели бы. Как упомянуто выше, связывание со сторонними библиотеками не поддерживается по телефону. Я думаю, что существует 'взлом' способ заставить его работать, но Вы потеряете распределение.

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

0
ответ дан 29 November 2019 в 04:44
поделиться

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

http://blog.stormyprods.com/2008/11/using- статические библиотеки с iphone-sdk.html

http://www.clintharris.net/2009/iphone-app-shared-libraries/

Наслаждайтесь!

2
ответ дан 29 November 2019 в 04:44
поделиться

FYI XCODE 3.2 имеет новый шаблон проекта, называемый Cocoa Touch Static Bistatic. Возможно, вы захотите пойти на этот маршрут.

18
ответ дан 29 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: