Ах! Я понял это несколько дней назад, но не успел ответить. Я мог бы использовать локальные переменные, которые я перезаписывал только при выполнении инструкций.
Вот пример.
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
При выполнении этого для 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
, который избегает издержек создания вызова функции. Это - довольно незначительная оптимизация, но для функции, настолько простой, это имеет смысл.)
320 проектов являются хорошим примером библиотеки классов iPhone. Вы в основном компилируете свой проект вниз в.a библиотеку и затем статически связываетесь против этого в Ваших клиентских проектах.
320 проектов походят на хорошую начальную точку действительно. Но этому недостает (я думаю) в:
- имение в наличии библиотеки в новых проектах сразу же
- имение в наличии новых классов под 'новым файлом'
Это - шаблоны файла и проект. Для получения дополнительной информации спросите Google.
Если Вы планируете выпуск этого на App Store, Вы, привычка может пользоваться Вашей библиотекой в способе, которым Вы хотели бы. Как упомянуто выше, связывание со сторонними библиотеками не поддерживается по телефону. Я думаю, что существует 'взлом' способ заставить его работать, но Вы потеряете распределение.
Лучшее, которое я мог придумать, помещало все соответствующие нормы в каталог и совместно использовало их тот путь. Я знаю не как изящный, но его их ограничение т.е. из нашего управления.
Поскольку сейчас это вики сообщества, я подумал, что будет полезно связать некоторые ресурсы и руководства:
http://blog.stormyprods.com/2008/11/using- статические библиотеки с iphone-sdk.html
http://www.clintharris.net/2009/iphone-app-shared-libraries/
Наслаждайтесь!
FYI XCODE 3.2 имеет новый шаблон проекта, называемый Cocoa Touch Static Bistatic. Возможно, вы захотите пойти на этот маршрут.