Ben Gottlieb прав, но существует более быстрый способ получить URL: можно щелкнуть правой кнопкой по любому значку приложения в iTunes и выбрать "URL iTunes Store копии".
Тогда вызов UIApplication openURL
на нем.
Должен ли я использовать имя init в качестве имени конструктора?
Нет, вы можете назвать функцию инициализации как угодно. init ()
- это просто соглашение. И это не настоящий конструктор, поскольку он не вызывается автоматически.
если я создаю экземпляр компонента, не вызывая метод init, что возвращается?
Экземпляр компонента возвращается, как и следовало ожидать. . Наличие или отсутствие функции init ()
совершенно не имеет значения. В компонентах ColdFusion нет понятия статических функций, вы всегда получаете полностью сконструированный экземпляр из GetObject ("component", ...)
. (Не так для объектов Java, которые создаются непосредственно перед первым использованием, если вы забыли / не сделали это вручную. )
могу ли я извлечь код из метода инициализации и удалить метод инициализации, а затем вставить код в заголовок компонента, имеет ли он тот же эффект, что и конструктор инициализации?
Да, при условии, что метод init ()
не принимал никаких параметров, разницы нет.
Однако существует соглашение о существовании метода init ()
, который возвращает экземпляр компонента. Даже если он ничего не делает, кроме «
». Я оставался последовательным и добавлял по одному к каждому компоненту, даже если это не было строго необходимым.
Однако существует соглашение о существовании метода init ()
, который возвращает экземпляр компонента. Даже если он ничего не делает, кроме «
». Я оставался последовательным и добавлял по одному к каждому компоненту, даже если это не было строго необходимо.
Однако существует соглашение о существовании метода init ()
, который возвращает экземпляр компонента. Даже если он ничего не делает, кроме «
». Я оставался последовательным и добавлял по одному к каждому компоненту, даже если это не было строго необходимым.
Ответ Томалака верен для ColdFusion 8; однако все немного изменилось с ColdFusion 9, который должен выйти в конце этого года. (Для полноты картины я скопирую ответ Томалака и внесу необходимые поправки, так что спасибо за фору. :))
Должен ли я использовать имя init в качестве имени конструктора?
CF8: Нет, вы можете назвать функцию инициализации как угодно - «init» - это просто соглашение. И это не настоящий конструктор, поскольку он не вызывается автоматически.
CF9: Ответ по-прежнему «нет», вы не должны . Но, возможно, вам следует: Это относится к созданию объектов в cfscript (или компонентах, содержащих только сценарии, которые также входят в CF9). Ключевые слова import
и new
добавляются, и вы сможете создать экземпляр объекта следующим образом:
import model.security.*;
userObj = new User();
Предполагается, что у вас есть пользователь . cfc
внутри папки model / security /
. Кроме того, CF9 будет искать либо метод с именем "init", либо метод с тем же именем, что и объект (в данном случае "Пользователь"), и неявно вызывает его как конструктор.
Я не уверен, что передача аргументов в директиву new
перенаправит их в конструктор, как вы могли бы видеть в Java / C. Я предполагаю, что так и будет, но я еще не видел никаких презентаций или примеров кода, указывающих на тот или иной путь; и сам не тестировал, потому что это пришло мне в голову, когда я писал это. ;) (Еще одна идея: Интересно, будут ли поддерживаться несколько конструкторов с разными наборами аргументов. Я сомневаюсь в этом, но это отличная идея.)
Я предполагаю, что есть некоторое предположение, что аналогичная функциональность может отображаться в CFML (язык на основе тегов, отдельный от cfscript), но на данный момент об этом ничего не сказано. .
Если я создам экземпляр компонента без вызова метода init, что будет возвращено?
Экземпляр компонента возвращается, как и следовало ожидать. Наличие или отсутствие функции init () не имеет значения. В компонентах ColdFusion нет понятия статических функций, вы всегда получаете полностью сконструированный экземпляр из GetObject ("компонент", ...). (Не так для объектов Java, которые создаются непосредственно перед первым использованием, если вы забыли / не сделали это вручную. )
Могу ли я извлечь код из метода инициализации и удалить метод инициализации, а затем вставить код в заголовок компонента, имеет ли он тот же эффект, что и конструктор инициализации?
Да, пока , поскольку метод init () не принимает никаких параметров, нет никакой разницы.
Тем не менее, существует соглашение о наличии метода с именем init (), который возвращает экземпляр компонента («this»). Даже если он ничего не делает, кроме « вернуть это;
». Я бы оставался последовательным и добавлял по одному к каждому компоненту, даже если это не было строго необходимо.
вернуть это;
». Я бы оставался последовательным и добавлял по одному к каждому компоненту, даже если это не было строго необходимо. это соглашение о наличии метода с именем init (), который возвращает экземпляр компонента («this»). Даже если он ничего не делает, кроме « вернуть это;
». Я бы оставался последовательным и добавлял по одному к каждому компоненту, даже если это не было строго необходимо. Некоторые сторонние библиотеки / фреймворки могут ожидать, что init
будет функцией конструктора (очевидно, до CF9) . Например, Я считаю, что ColdSpring ищет метод с именем init
при попытке передать аргументы конструктора.
В ответ на ответ Адама я почти уверен, что несколько конструкторов не будут частью CF9, поскольку это требуется перегрузка метода, о которой я ничего не слышал. Обычный обходной путь - воспользоваться преимуществами Duck typing и проверить аргументы для типа, а также предоставить необязательные аргументы (возможность передавать именованные аргументы делает это довольно простым для обработки).
Ссылка на презентацию Шона Корфилда по Duck Typing: http://corfield.org/articles/ducktyping_cfunited.pdf