Как сделать свифт файл

Обновлено: 04.07.2024

Как перевести деньги за рубеж? Как получить средства из другой страны? Один из способов – воспользоваться системой SWIFT-кодов, присваиваемых финансовым институтам по всему миру. Зная это сочетание букв и цифр, можно перечислить сумму из-за границы в любой российский банк и наоборот.

Из этой статьи вы узнаете:

Что такое SWIFT-код банка

SWIFT-код (СВИФТ-код) – это уникальное сочетание латинских букв и цифр, которое присваивается каждому банку в системе международных расчетов. Он выдается финансовому институту после вступления в Общество всемирных межбанковских финансовых каналов связи.

Справка! Решение о создании системы SWIFT было принято в 1973 году в Брюсселе. Изначально ее участниками стали 248 банков из 15 стран мира. В 2021 году в нее вошло уже около 12 тыс. банков из 200 стран мира, а также более 1 тыс. крупных корпораций.

Суть системы SWIFT-кодов заключается в том, что в мировом пространстве финансовый институт можно идентифицировать не по названию, а по его уникальному коду. Так, если перевести деньги из банка Зимбабве в Альфа-Банк – по кодам финансовых институтов будет понятно направление и конечную точку перевода.

Официальное видео: «Что такое СВИФТ код и как узнать код своего банка?»

Из чего состоит СВИФТ-код?

Стандартно в него входит 11 символов в 4 группах:

WWWW XX YY ZZZ

Рассмотрим значение каждой из групп уникального кода.

Первые четыре цифры SWIFT: примеры

WWWW

Страна

Банк

Сельскохозяйственный Банк Китая

  • ХХ. Вторые два символа – буквенное обозначение государства по стандарту ISO 3166. Эта часть позволяет понять в какую страну направляются средства. Например, для России – это RU, для Казахстана – KZ, для Германии – DE, для США – US и т.д.
  • YY. Третьи два символа – буквенно-цифровое обозначение региона для упрощения поиска отделения банка по территории страны. Например, в России действуют такие коды, как ММ – Москва, 3Т – Тольятти, 8Х – Благовещенск.
Важно! Если страна небольшая, группа региона не заполняется, она замещается единицами. Если в сочетании присутствует 0, то код работает в тестовом режиме.
  • ZZZ. Последние три символа – буквенно-цифровое обозначение филиала банка. Оно используется только в отношении крупных банков и корпораций с разветвленной сетью отделений.
Важно! Если филиалов немного, их нет или идет речь о головном офисе финансового института, то последние три символа обозначаются как ХХХ или вовсе опускаются.

В полном виде SWIFT-код может выглядеть так:

  • ALFARUMM – головной офис Альфа-Банка в Москве;
  • SABRRUMMSE1 – отделение Сбербанка России в Центральном административном округе.

Для чего нужен SWIFT-код

Если необходимо перевести средства из одной страны в банк другой страны – необходимо знать СВИФТ-код этого финансового института. Уникальное сочетание букв и цифр необходимо отправителю. Получателю он не нужен – он просто снимает средства со своего счета.

Рисунок 1. Как работает система СВИФТ

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

Важно! В системе участвуют не только банки получателя и отправителя, но и их корреспонденты – посредники в сделке. Потому при заполнении заявления на перевод отправитель должен указать и их реквизиты.

Рисунок 2. Примеры реквизитов для перевода средств

Важно! Отправитель может не иметь собственного банковского счета: ему достаточно внести средств в виде наличности в кассе любого банка своей страны.

Переводы средств могут осуществлять граждане, организации, предприниматели. Средства обычно поступают на счет получателя в течение 1-7 суток. По степени надежности и безопасности у системы СВИФТ в мире пока нет аналогов.

Как узнать SWIFT-код своего банка

Чтобы совершить международный денежный перевод, отправителю нужно взять у получателя уникальный СВИФТ-код его финансового института. Где его можно выяснить?

  1. На сайте любого российского банка его можно отыскать в разделе «Реквизиты».
  2. В России действует Национальная Ассоциация «РОССВИФТ», на сайте которой размещен каталог всех уникальных кодов российских коммерческих финансовых учреждений.
  3. При отсутствии доступа в интернет можно позвонить в банк по телефону горячей линии, и оператор продиктует всю необходимую информацию – код и реквизиты корреспондента.

Как сделать перевод по SWIFT-коду

Желая сделать перевод по системе СВИФТ, важно уточнить – подключены ли к ней банки отправителя и получателя. Если оба финансовых института работают с такими транзакциями – можно приступать к операции.

Условия SWIFT-перевода

Отправитель должен прийти в офис своего банка с паспортом и реквизитами банка получателя. Международный перевод предполагает три действия.

  1. Заполнение заявки. В форме нужно указать страну, город, наименование финансового института и его корреспондента, их SWIFT-коды, Ф.И.О. или наименование получателя. Реквизиты получателя прописываются в заявке на латинице.
  2. Дополнительные сведения. Сотрудник банка проверяет паспорт отправителя и в некоторых случаях запрашивает дополнительную информацию – о регионе, филиале получателя и др.
  3. Внесение средств. Отправитель вносит в кассу банка или списывает со счета нужную сумму. За перевод оплачивается комиссия.

Средства зачисляются на счет получателя в течение 1-3 суток, при этом выходные и праздники не учитываются.

Альфа-банк - Рефинансирование кредита

Тарифы на перевод

Хотя СВИФТ является международной системой переводов, каждый ее участник вправе устанавливать собственные тарифы на транзакции. Кроме того, некоторые центральные банки предъявляют системе свои условия.

В России у большинства коммерческих банков действуют такие тарифы:

  • максимальный лимит перевода – отсутствует;
  • если перечисляются между физическими лицами, то при сумме свыше 3-5 тыс. долл. банку нужно будет предъявить дополнительный документ на обоснование операции (например, медицинскую справку, как подтверждение денежной помощи на лечение и др.).

У всех российских граждан имеется возможность отмены перевода в течение 1-3 суток – в зависимости от индивидуальных условий финансового института.

Важно! Система SWIFT функционирует в постоянном режиме: круглосуточно, без остановки на выходные и праздничные дни. Этим она выгодно отличается от стандартных систем переводов, таких как CONTACT и Western Union.

За переводы денежных средств в системе СВИФТ взимаются комиссии. Их устанавливают банки отправители и корреспонденты в качестве платы за свои услуги.

Комиссия взимается как процент от суммы перевода с наличием минимальных и максимальных лимитов.

Комиссионные платежи в российских банках

Банк

Валюта

Комиссия, %

Минимальная сумма комиссионных

Максимальная сумма комиссионных

Как получить SWIFT-перевод

Условия получения перевода

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

Важно! Финансовые институты устанавливают лимиты на получение. Если речь идет о списании крупной суммы, то клиенту придется предъявить документ о правомерности операции (например, договор на покупку недвижимости, медицинское заключение о проведении дорогостоящей операции и т.д.).

Тарифы на получение SWIFT-перевода

Аналогично отправке средств по системе SWIFT при получении денег банки также могут устанавливать свои тарифные ограничения. Российские финансовые институты работают на схожих условиях:

  • максимальный лимит получения – отсутствует;
  • валюта получения – рубли, доллары, евро.
Справка! Некоторые банки работают также с фунтами стерлингов, йенами, юанями и швейцарскими франками.

Несмотря на круглосуточный режим работы системы СВИФТ в выходные и праздничные дни средства на счета получателей не зачисляются. Дело в том, что российские банки тщательно проверяют транзакции. Проводятся эти операции в будние дни в пределах рабочей смены банковского персонала.

Некоторые банки взимают комиссии с получателей денежных переводов в системе SWIFT за свои услуги по проверке транзакции и зачислению средств на счет.

Как и в случае с отправкой перевода, комиссия устанавливается как процент от суммы с указанием минимальных и максимальных лимитов.

Как программировать в Swift на Windows 10

Swift — один из самых популярных языков сейчас, и на то есть веские причины. Приложения для Mac и iOS занимают огромную долю рынка. Возможность создавать приложения для iOS изначально важна для людей, которые не хотят погружаться в темные глубины Objective C.

Поскольку Swift является родным для Apple, вам нужен Mac, верно? Неправильно. Хотя не существует метода «из коробки» для компиляции Swift в Windows, это не означает, что пользователи Windows не могут изучать Swift.

Вот как можно создать простую программу Swift, скомпилировать и запустить ее в Windows 10.

Что такое Свифт?

Это относительно молодой язык, который был выпущен для публики в 2014 году, хотя он уже широко известен. Индекс лучших языков программирования TIOBE в 2017 году поставил Swift на 11-е место, что делает его одним из самых быстрорастущих языков за все время.

Короче говоря, если вы программируете для Mac или iOS, Swift для вас! Для более глубокого изучения использования Swift, взгляните на эти причины, почему Swift стоит изучать Swift стоит изучать Swift стоит изучать

Начало работы с Swift на Windows 10

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

Сегодня мы собираемся использовать Notepad ++, так как он бесплатный, простой и расширяемый. Загрузите Блокнот ++ и откройте его. Давайте приступим к некоторому кодированию!

Notepad ++ - это мощный редактор кода

Простая программа Swift для Windows

Для нашего тестового проекта сегодня мы собираемся создать простую программу, которая будет работать в командной строке Windows. Начните с открытия нового файла Notepad ++. Мы начнем с вывода вопроса на экран, подождем, пока пользователь напечатает его ответ, а затем используем этот ответ для предоставления ответа.

Это будет отображаться при запуске программы. Теперь, когда мы задали вопрос, мы должны предоставить пользователю возможность ответить. Для этого мы используем метод readline () и сохраняем ответ как переменную с именем response .

Пользователи Python уже могут быть здесь как дома!

Добавление вывода

Теперь, когда эта информация хранится в переменной, мы хотим использовать ее и отобразить ее пользователю. Что может быть лучше, чем пожелать им хорошего дня?

Даже если у вас есть опыт работы на других языках, вы увидите здесь некоторые различия. Вместо того, чтобы использовать оператор + вне кавычек для отображения вашей переменной, вы используете \ (variableName) в кавычках. Еще одной особенностью Swift является использование дополнительных значений . Эти значения на первый взгляд сложно понять, но они расширяют функциональность использования переменных в Swift.

В этом случае мы просто хотим отобразить значение как есть, поэтому мы добавляем восклицательный знак после ответа имени переменной ! обозначить, что это не необязательное значение. Необязательное значение — это переменная, которой может или не может быть присвоено значение. Это не требует одного. Если ему не присвоено значение, то ему будет присвоено ноль.

Знак вопроса (?) После типа значения определяет его как необязательный, а восклицательный знак означает, что это не так.

Ваш код будет выглядеть примерно так:

Вот как должен выглядеть ваш код Swift

Чтобы сохранить код, используйте « Файл»> «Сохранить как» и выберите файл Swift в меню « Тип файла» . Если в вашем меню отсутствует тип файла Swift, выберите вместо него все файлы и добавьте расширение файла .swift после выбранного имени файла.

Компиляция Swift в Windows 10

Теперь, когда у нас есть программа, мы должны быть в состоянии скомпилировать и запустить ее. Хотя нет встроенного способа программирования Swift в Windows 10, есть обходной путь. Хан Санджин создал компилятор для Swift, который можно загрузить с Github . Загрузите и установите приложение Swift для Windows, используя инструкции, приведенные в ссылке.

Как только это установлено, откройте это. Нажмите на кнопку « Выбрать файл» и выберите ранее созданную программу. Нажмите Compile и подождите, пока программа скомпилируется.

Swift для Windows 2.0


Для такой маленькой программы это должно быть почти мгновенно, хотя это может занять время в зависимости от того, насколько сложным вы сделали свой код!

Выход из вашей простой программы Swift

Стоит отметить, что для запуска кода необходимо использовать приложение Swift for Windows, созданный EXE- файл не будет работать автономно, даже если приложение открыто.

Начните писать код Swift в Windows сегодня

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

Если вы пользователь Linux и хотите кодировать приложения для iOS, вот как написать код в Swift с Ubuntu

Favorite

В закладки

Итак, продолжим знакомство с простым и интересным языком Swift. В прошлый раз мы познали базовые команды и функции перспективного языка программирования. А теперь сделаем своё первое приложение!

Сегодня мы сделаем простое приложение для расчета индекса массы тела и необходимого количества калорий для поддержания веса. Для этого будем использовать формулы Гарисса Бенедикта и индекса массы тела.


1. Для начала давайте создадим проект: запустите Xcode и нажмите комбинацию клавиш CMD+Shift+N или выберите в меню File->New->Project


2. Теперь выберите Tabbed Application и нажмите Next.

3. На этом этапе надо придумать имя для приложения (Product Name), нажать Next и выбрать папку для сохранения. Параметры Organization Name и Organization Identifier можете не менять.


Главное, чтобы значение в поле Language было равно Swift.

4. После того, как вы сохраните проект, перед вами появится рабочее пространство Xcode.


Слева у вас будет панель Navigator, а справа — Utilities. В каждой из этих панелей есть свои вкладки, которые позволяют получить доступ к различным функциям.

Например, первая влкадка в панеле Navigator показывает список файлов проекта, третья позволяет производить поиск по проекту и так далее.

5. Найдите в списке файлов проектов файл с именем Main.storyboard и нажмите на него.


Файл Main.storyboad определяет, какие экраны (контроллеры) есть в приложении. Вы можете добавлять элементы на экраны, задавать связи между экранами и так далее.


Если вы выберите какой-нибудь контроллер, он подсветится синей рамкой:


После того, как контроллер выбран, его свойства начнут отображаться в панели Utilities. Например, контроллеру можно поменять размер, выбрав другое значение в поле Size.


6. Запустим наше шаблонное приложение и посмотрим, как оно выглядит в симуляторе. Для этого надо в верхнем левом углу выбрать тип симулируемого устройства и нажать комбинацию клавиш CMD+R или кнопку с икокой Play.



Как видите, у нас есть приложение с двумя экранами, преключение между которым осуществляется при помощи таб-бара.

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



После того как таб будет выбран, он подсветится зеленым цветом.


8. Теперь в панели Utilities выбирайте Attributes Inspector и меняйте значение в поле Title на BMR/BMI для первого таба и Килокалории для второго.


Сейчас на первом контролере размещены всякие надписи. Их надо удалить. Для этого выделите их и нажмите Delete.


9. Теперь добавим свои элементы управления. Внизу панели Utilities есть Object Library, в которой можно выбрать объекты и добавить их к сцене. Найдите объект Label и перетащите его на контроллер BMR/BMI. Перед этим не забудьте два раза тапнуть на сцене, чтобы масштаб стал стандартным.


Должно получиться примерно так.


В панели Utilities можно поменять текст, размер шрифта и так далее.


10. Перетащите еще несколько лейблов и поставьте им такой же текст, как и на картинке. Для последнего лейбла нужно поставить Lines в 2, чтобы текст переносился на другую строку.


11. Теперь добавьте 3 текстовых поля (Text Field).


И разместите их, как на картинке.


У текстовых полей поставьте параметр keyboard type в Number Pad.


И установите текст по умолчанию.


12. Теперь добавим элементы управления для выбора пола и кол-ва тренировок в неделю. В Object Library ищете Segmented Control и добавляйте на экран.


У Segmented Control можно менять количество сегментов и текст для каждого сегмента.


Сделайте так, чтобы сегменты выглядели, как на скриншоте.


13. Теперь добавьте кнопку (button).


И установите ей заголовок.




После этого добавьте еще один label с lines равным 4.


14. Выберите контроллер BMI/BMR, нажмите два пересекающихся кольца в правом верхнем углу и откроется Assistant Editor. Он показывает код, ассоцированный с этим контроллером.


15. Протащим элементы управления.


Для этого выберите первый text field (в нашем случае это будет возраст), нажмите Ctrl, кликните на него еще раз и, не отпуская кнопки, перетащите внутрь класса. Если все сделано правильно, то вы увидите посказку “Insert Outlet, Action, …”.

Теперь отпустите курсор, и вы увидете окошко для создания связи. В качестве имени введите ageTextField и нажмите Connect.


16. У вас появится переменная ageTextField.


Проделайте эту процедуру для оставшихся text field, segmented controls и label с текстовым результатом. У вас должно получиться так:


Теперь протащите кнопку, но тип соединения укажите не Outlet, а Action. И в качестве имени используйте calculateTapped.



17. Теперь скопируйте следующий код в метод calculateTapped.

Этот код выполняет расчет и выводит результат на экран.

18. Пришло время подвести итог. Давайте запустим и проверим:


Ваша первая программа готова! Молодцы!

Если что-то не получается по ходу дела, пишите в комментарии. Специально для этого мы пронумеровали каждый пункт. На все вопросы ответят разработчики-профессионалы из команды, так что не стесняйтесь.

Если вы шарите в теме и вам есть, что добавить, не стесняйтесь – пишите в редакцию со своими статьями на тему разработки приложений. В следующем выпуске подробнее рассмотрим, что было сделано и доработаем приложение, подготовив его к публикации. Так что подготовьтесь заранее, сделав домашнее задание :)

Уверен, все остальные давно мечтали «сделать свое приложение для айфона». Это ваш шанс. До скорых встреч в следующих статьях цикла!

(5 голосов, общий рейтинг: 4.80 из 5)

Favorite

В закладки



Во втором туториале вы узнаете как создать свое первое приложение для iOS. Конкретно, что мы сделаем тут, так это создадим пользовательский интерфейс для нашего класса TipCalculator , который был в прошлом туториале. Мы написали наши уроки так, чтобы они были полезны как для совсем начинающих программистов iOS, так и для бывалых программистов, знакомящихся со Swift.

Для этого туториала вам понадобится Xcode минимальной версии 6.1.1 (время написания этой статьи). Вам не нужен какой-либо опыт в программировании на Swift или Objective-C, но если он все таки есть, то он лишь ускорит процесс усвоения материала.

Поехали!

Запустите Xcode и пройдите по File\New\Project. Выберите iOS\Application\Single View Application и нажмите Next.


В графе Product Name (имя приложения) напишите TipCalculator, установите Language на Swift и смените Devices на iPhone. Use Core Data выбирать не нужно. После, нажмите Next.


Выберите директорию для сохранения проекта и нажмите Create.

Давайте взглянем, что создал для нас Xcode: в верхнем левом углу выберите iPhone Simulator и нажмите кнопку Play.


Если вы все сделали правильно, то вы увидите симулятор с белым экраном:


Xcode создал одностраничное приложение с пустым белым экраном. Но не переживайте, в этом туториале вы его заполните!

Создаем модель приложения

Первое должно быть первым - до того как мы приступим к пользовательскому интерфейсу, вы должны создать модель приложения. Модель приложения - класс (или несколько классов), который отображает данные вашего класса и операции, которые будет проводить ваше приложение с этими данными.

В этом туториале ваша модель будет просто представлена классом TipCalculator, который вы создали на прошлом уроке, только мы переименуем его в TipCalculatorModel.

Давайте добавим класс в ваш проект. Чтобы это сделать нужно пройти File\New\File и выбрать iOS\Source\Swift File. Называем файл TipClculatorModel.swift и жмем Create.

Заметка

Вы не можете обратиться к коду, который располагается в файле Playground'а. Playground нужен только для тестирования вашего или его макетирования. Если вы хотите использовать код из playground'а, то вам придется просто его перенести в файл Swift, как мы и сделаем тут.

Откройте TipCalculator.swift и скопируйте туда ваш класс TipCalculator (но только класс и больше ничего!) из файла предыдущего туториала и сделайте следующее:

  1. Переименуйте класс в TipCalculatorModel
  2. Поменяйте total и taxPct из констант в переменные (потому что пользователь будет менять эти данные, когда запустит приложение)
  3. Из-за этого вам нужно поменять subtotal в вычисляемое свойство. Замените свойство subtotal на следующее:

Фактически, вычисляемое свойство не хранит значения. Вместо этого оно его вычисляет, каждый раз, основываясь на других значениях. Здесь subtotal считается каждый раз, когда мы обращаемся к нему, основываясь на значениях total и taxPct.

Заметка

Вы также можете использовать метод setter для вычисляемого свойства, если вам нравится синтаксис вроде этого:

Однако, setter будет обновлять ваши свойства total и taxPct, основываясь на newSubtotal, но для нас это бессмысленно, так что имплементировать это мы не будем.

  1. Удалите строку, которая устанавливает subtotal в init.
  2. Удалите все комментарии, которые есть в файле

В итоге у вас должно получиться следующее:

С моделью приложения мы разобрались, настало время поработать над интерфейсом!

Вступление в Storyboards и в Interface Builder

Заметка

Если вы уже бывалый разработчик под iOS, то эта статья и следующая будут для вас легкими. Для ускорения процесса вы можете сразу перейти в секцию "Обзор View Controller".

Вы создаете интерфейс приложения в Storyboard. В Xcode есть встроенный инструмент для удобного редактирования Storyboard, который называется Interface Builder.

В Interface Builder вы можете размещать: кнопки, текст, ярлыки и другие элементы (которые называются Views). Осуществляется все это с помощью простого перетягивания с панели, на экран вашего приложения.

Двигаемся дальше, нажмите на Main.storyboard в левой части Xcode, для того, чтобы показать Storyboard в Interface Builder.


Тут много всякого для изучения, так что давайте не будем сильно торопиться и будем двигаться постепенно:

  1. В левом краю у вас есть Project Navigator или навигатор проекта, где отображаются все файлы вашего проекта.
  2. Слева в Interface Builder располагается Document Outline (схема документа), где вы можете быстро взглянуть на все элементы располагающиеся на вашем "экране". При нажатии на стрелочки вы получите развернутую иерархию элементов вашего приложения на текущем "экране" (View Controller). На данный момент у вас всего один View Controller или "экран" с одним пустым белым View (смотри в иерархии). Мы скоро добавим сюда некоторые элементы.
  3. Стрелка слева от View Controller свидетельствует о том, что это входной View Controller или "экран", то есть это именно тот вид, который появляется при загрузке приложения. Вы можете изменить первоначальный "экран" просто перетащив стрелку на другой, которого у нас нет.
  4. Внизу Interface Builder'а вы видите что-то вроде "w Any", "h Any". Это значит, что вы редактируете ваш внешний вид приложения, который будет работать в интерфейсе любого размера. Вы можете сделать это через опцию Auto Layout. Кликнув на область экрана, вы можете переключить редактирование отображения для устройств принадлежащих определенному классу размеров. Об этом вы узнаете из наших будущих статей.
  5. Наверху View Controller'а вы увидите маленькие иконки, которые отображают сам View Controller, First Responder, Exit. Если вы немного программировали в Xcode ранее, то вы заметили, что эти иконки ранее были внизу. Этими иконками в этой статье мы пользоваться не будем, так что пока не берите в голову.
  6. Внизу справа Interface Builder'а четыре иконки для Auto Layout. Ну о них мы поговорим в следующих туториальных.
  7. Справа вверху Interface Builder'а располагается Inspectors (инспекторы) для выбранного вами элемента. Если у вас ничего нет, то пройдите по меню View\Utilities\Show Utilities. Обратите внимание, что тут несколько вкладок, мы будем использовать их в этом туториале для конфигурации вида.
  8. Внизу справа Interface Builder'а располагаются библиотеки или Libraries. Это перечень различных элементов, которые вы можете добавить к виду вашего приложения. Уже очень скоро мы перетащим несколько элементов из Libraryes на View Controller(экран) вашего приложения.

Создание элементов интерфейса приложения

Помните, что ваш класс TipCalculatorModel имеет два значения для ввода: общая сумма (total) и процент налога (tax percentage).

Было бы здорово, если бы пользователь смог вводить значения с цифровой клавиатуры, таким образом, текстовое поле (Text Field) подходит идеально для этих целей. Что же касается ввода процента налога, то обычно запрещено использовать его для маленьких значений, так что лучше мы будем использовать слайдер (Slider).

В дополнение к текстовому вводу и слайдеру, нам также нужно: установить ярлыки (Label), панель навигации для отображения названия приложения, кнопку для выполнения вычислений и еще одно текстовое поле для вывода результата.

Давайте детально рассмотрим пользовательский интерфейс.


    Navigation Panel (или панель навигации). Вместо того, чтобы добавить панель навигации напрямую, выберите ваш View Controller, выделив его в иерархии документов как на рисунке: После этого идите в Editor\Embed In\Navigation Controller. Это установит вам панель навигации в ваш View Controller (отныне экран будем называть именно так). Сделайте двойной щелчок на панели навигации (Navigation Bar, которая внутри вашего View Controller) и установите имя Tip Calculator.

Теперь запустите свой симулятор iPhone 6 и вы должны увидеть, что базовый интерфейс пользователя уже работает!


Тур по View Controller

Заметка

Если вы сразу прыгнули до этой секции, то вот вам наш plaground в zip!

Только что вы создали модель и внешний вид приложения, теперь самое время разобраться с View Controller!

Откройте ViewController.swift. Тут находится код вашего одиночного View Controller'а (экрана) приложения. Эта штуковина отвечает за взаимодействие ваших элементов с вашей моделью.

Вы увидите, что этот класс уже имеет вот такой код внутри:

Есть несколько моментов, c которыми в ы до сих пор не сталкивались. Давайте разберемся с ними по одному:

  1. iOS разделена на множество frameworks(или фреймворки), каждый из которых содержит различные наборы кода. До того как использовать эти наборы в вашем приложении, вы должны импортировать этот фреймворк. UIKit - фреймворк, который содержит базовые классы для работы с View Controller'ми и элементами управления, такими как: кнопки, поля ввода текста и множество других.
  2. Это первый пример, где вы видите класс, который является подклассом. Вы объявляете ViewController, который является подклассом UIViewController.

Заметка

Опытные разработчики заметили, что ненужно ставить префикс класса перед именем класса, как вы это делали в Objective-C для избежания совпадения имен (другими словами, вам не нужно называть это RWTViewController). Все потому, что в Swift есть пространство имен и классы, которые вы создали в вашем проекте.

Для того, чтобы вы поняли, что мы имеем в виду, замените объявление класса следующим кодом:

Здесь UIKit.UIViewController относится к классу UIViewController в пространстве имени UIKit. Так же как и TipCalculator.UIViewController будет относиться к к классу UIViewController в вашем проекте.

Не забудьте удалить этот тестовый код и вернуть предыдующее объявление ViewController

Соединяем ваш View Controller с вашими Views (элементами)

Сейчас, у вас уже сложилось правильное понимание класса View Controller, что ж, давайте добавим некоторые свойства для ваших subviews (элементов, которые находятся внутри view в иерархии документа) и подключим их в interface builder'е.

Для того, чтобы сделать это, добавьте следующие свойства в ваш класс ViewController(прямо перед viewDidLoad):

Тут мы объявляем четыре переменные, прямо так, как вы изучили в нашем первом туториале: UITextField, UISlider, UILabel и UITextView.

Здесь всего два отличия:

  1. Вы пишите перед переменными ключевое слово @IBOutlet. Interface Builder сканирует код в поиске каких-либо свойств в вашем View Controller'е с этим словом. У найденных свойств он ищет соединения, так что вы смело можете их соединить с элементами (или Views).
  2. Вы обозначаете переменные восклицательным знаком (!). Это значит, что ваши переменные опциональны, но их значения неявно извлекаются. Этот замечательный способ сказать, что вы пишите код, предполагая, что они имеют значения, и ваше приложение завершится с ошибкой, если вдруг хотя бы одно из них окажется без значения, т.е. nil.Неявное извлекаемые опционалы - удобный способ для того, чтобы создать переменные, которым точно будут присвоены значения до того, как они будут использованы (как создание элементов пользовательского интерфейса в Storyboard), так что вы не должны извлекать значение опционала каждый раз перед использованием. Давайте попробуем соединить эти свойства с элементами пользовательского интерфейса.

Откройте Main.storyboard и выберите ваш View Controller (Tip Calculater в нашем случае) в иерархии документа (Document Outline). Откройте Connection Inspector (6 вкладка) и вы увидите все свойства, которые вы создали в секции Outlets.


Вы наверняка заметили маленький круг справа от resultsTextView. Удерживайте клавишу ctrl и перетащите курсор с него и до text view, который под Calculate button, и отпустите. Вы только что соединили свойство с элементом (или view).


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

Заметка

Есть даже более простой способ подключения свойств к элементам.

Пока вы держите Main.storyboard открытым, вы можете открыть Assiastand Editor (View\Assistant Editor\Show Assistant Editor), убедитесь, что ваш assistant editor отображает ваш код view controller'а.

После чего вы можете перетащить (с ctrl) ваш элемент в Assistant Editor, прямо до viewDidLoad. В появившемся окне вам будет нужно ввести имя свойства для того чтобы его создать, после чего жмем Connect.

Такой метод позволит вам создать свойство и сразу его подключить, и все это за один раз. Неплохо, правда?

Оба способа работают хорошо, а вот который вам ближе, решать вам.

Подсоединяем Actions(действия) к вашему View Controller'у

Точно также как вы соединили элементы со свойствами вашего view controller'а, вам нужно так же соединить определенные действия ваших элементов (например, нажатие кнопки) с методами вашего view controller'а.

Откроем ViewController.swift и добавим эти три метода в ваш класс:

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

Заметка

AnyObject - эквивалент для id в Objective-C.

Для того чтобы Interface Builder заметил ваши новые методы, вам нужно использовать ключевое слово @IBAction (точно так же как и в случае с @IBOutlet).

Далее, откройте Main.stroryboard и убедитесь что в схеме документа вы выделили свой view controller. Также убедитесь, что ваш Connections Inspector (6 вкладка) открыт и вы увидите новые методы в секции Recieved Actions.


Найдите кружок справа от calculateTapped и перетащите его на кнопку Calculate. В появившемся окне выберите Touch Up Inside:


Другими словами мы говорим :"Вызывать мой метод calculateTapped: тогда, когда пользователь уже убирает палец с экрана".

Теперь повторим то же самое для остальных двух методов:

  • Перетащим taxPercentageChanged на ваш слайдер и соединим его с действием Value Changed, которое вызывается каждый раз, как только пользователь двигает слайдер.
  • Перетащим viewTapped на Tap Gesture Recognizer в схему документа. Никаких действий для этого нет, так что ваш метод будет просто вызываться, когда распознает соответствующее движение.

Заметка

Точно так же как и в случае со свойствами, так и для методов, есть сокращенный вариант соединения с действиями, используя Interface Builder.

Вы можете просто ctrl-перетащить от, скажем, кнопки в ваш Swift код вашего View Controller'а в Assistant Editor. В появившемся окне вам нужно выбрать Action и дать имя вашего метода.

Таким образом вы создадите метод в вашем Swift файле и соедините его с действием всего за один шаг. И снова, используйте тот метод соединения, который вам больше всего нравится.

Соединение вашего View Controller'а с вашей моделью

Уже почти все закончили. Все что осталось сделать, так это соединить ваш View Controller с вашей моделью.

Откройте ViewController.swift и добавьте свойство для модели вашего класса и метод для обновления пользовательского интерфейса:

Давайте пройдемся в refreshUI по одной строчке:

  1. В Swift вам нужно явно конвертировать один тип в другой. Здесь мы конвертируем tipCalc.total из Double в String
  2. Вы хотите, чтобы процент налога отображался как целое число (то есть от 0%-10%), чем дробное (что-то вроде 0.06). Так что просто умножим на 100.
  3. Помните, что это действие необходимо, так как свойство taxPctSlider.value является типом Float.
  4. Тут мы используем интерполяцию для обновления ярылка, отображающего процент налога.
  5. Очищаем результат в текстовом поле (text view) до тех пор пока пользователь не нажал кнопку Calculate.

Следующее, добавим вызов refreshUI внизу в viewDidLoad:

Так же имплементируем taxPercentageChanged и viewTapped:

taxPercentageChanged просто обращает "умножение на 100", в то время как viewTapped вызывает resignFirstResponder в поле totalTextField, когда пользователь нажал на view(что и заставляет клавиатуру исчезнуть с экрана).

Остался один метод. Имплементируем calculateTapped:

Давайте все разберем по порядку:

Заметка

Вот как это все работает, если вам это интересно.

Во время написания этого туториала класс String в Swift не имеет доступа ко всем методам, в отличии от NSString (NSString - класс в фреймворке Foundation). Если быть конкретным, то класс String в Swift не имеет метода, который бы преобразовывал тип String в тип Double, хотя NSSting такой метод имеет.

Вы можете вызвать (XXX as NSString)() в Swift для преобразования String в NSString. После чего вы можете использовать любой метод, доступный для NSString, например, метод, преобразующий String в Double.

Читайте также: