Чтение онлайн

на главную - закладки

Жанры

iOS. Приемы программирования

Нахавандипур Вандад

Шрифт:

}

);

key1 = value1;

}

Как видите, словари заключены в квадратные скобки, а массивы — в фигурные. Другие элементы представляют собой обычные пары «ключ — значение». Если бы мы попытались представить этот объект JSON в виде экземпляра NSDictionary, то у нас получился бы такой код:

NSDictionary *json = @{

@"key1": @"value1",

@"key 2 — dictionary": @{

@"key 2.1": @"value 2.1",

@"key 2.2": @"value 2.2",

},

@"key 3 — array": @[

@{

@"array item 1, key1": @"value",

@"array item 1, key2": @"value"

},

@{

@"array item 2, key1": @"value",

@"array item 2, key2": @"value"

}

]

};

Подробнее о нотации JSON вы можете почитать на сайте JSON.org. Перейдем к созданию файлов талонов. Как уже говорилось, такой файл состоит из обычной нотации JSON. Не путайте файлы талонов и сами талоны. Талон — это коллекция файлов, в которую входит и pass.json. Вся эта коллекция в целом и будет представлять собой талон с цифровой подписью, который пользователь сможет установить на своем устройстве. Файл талона «объясняет», как талон должен быть представлен на устройстве.

Файл pass.json можно создавать с помощью высокоуровневых и низкоуровневых ключей. Высокоуровневыми называются такие ключи, которые сразу же видны в основной иерархии файла pass.json. Низкоуровневые ключи являются дочерними для высокоуровневых. Не волнуйтесь, если пока это не совсем понятно. Я тоже сначала запутался в этой иерархии, но читайте дальше — и стройная картина обязательно сложится.

Начнем с создания файла pass.json в Xcode. Должен вас предупредить, что Xcode, к сожалению, не лучший инструмент для редактирования JSON. Однако это наша основная интегрированная среда разработки, так что продолжим работать в ней. Чтобы создать файл pass.json, выполните следующие шаги.

1. Создайте в Xcode простой проект для iOS, выбрав File — New — Project (Файл — Новый — Проект).

2. В левой части диалогового окна New Project (Новый проект) убедитесь, что находитесь в категории iOS. Затем выберите раздел Other (Другой), а в правой части экрана — вариант Empty (Пустой) (рис. 19.11). Сделав это, нажмите кнопку Next (Далее).

Рис. 19.11. Создание пустого проекта в iOS

3. Теперь укажите имя вашего проекта в поле Product Name (Имя продукта). Сделав это, нажмите кнопку Next (Далее). После этого можете сохранить файл на диске. Когда вы успешно выберете путь для сохранения проекта, появится возможность создать файл pass.json.

4. В новом пустом проекте в Xcode выберите File — New — File (Файл — Новый — Файл).

5. В диалоговом окне New File (Новый файл), будучи в категории iOS, выберите вариант Other (Другой). Справа выберите вариант Empty (Пустой) (рис. 19.12). Сделав это, нажмите кнопку Next (Далее).

Рис. 19.12. Добавление пустого файла в проект

6. После того как вы нажмете кнопку Next (Далее), вам будет предложено сохранить файл на диске. Убедитесь, что сохраняете его как pass.json. Справившись с этим, нажмите кнопку Create (Создать), и файл будет добавлен на диск в рамках вашего проекта.

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

{

«formatVersion»: 1,

«passTypeIdentifier»: «<# Put your Pass Type ID here #>»,

«serialNumber»: «p69f2J»,

«teamIdentifier»: «<# Put your team ID here #>»,

«description»: «Train Ticket Example»,

«locations»: [

{

«longitude»: -0.1 70867,

«latitude»: 50.8 34948

}

],

«barcode»: {

«message»: «12345 67890»,

«format»: «PKBarcodeFormatPDF417»,

«messageEncoding»: «iso-8859-1»

},

«organizationName»: «O'Reilly Railways»,

«logoText»: «O'Reilly Railways»,

«foregroundColor»: «rgb(255, 255, 255)»,

«backgroundColor»: «rgb(100, 100, 100)»,

«boardingPass»: {

«transitType»: «PKTransitTypeTrain»,

«primaryFields»: [

{

«key»: «departure»,

«label»: «Departs From»,

«value»: «Hove, 07:37»,

},

{

«key»: «departurePlatform»,

«label»: «Departs from Platform»,

«value»: "2",

}

],

«auxiliaryFields»: [

{

«key»: «arrival»,

«label»: «Arrives At»,

«value»: «London Bridge, 08:41»

},

{

«key»: «arrivalPlatform»,

«label»: «Arrives at Platform»,

«value»: «13»

}

],

«backFields»: [

{

«key»: «oreillyRailways»,

«label»: «O'Reilly Railways»,

Поделиться:
Популярные книги

Как я строил магическую империю 3

Зубов Константин
3. Как я строил магическую империю
Фантастика:
попаданцы
постапокалипсис
аниме
фэнтези
5.00
рейтинг книги
Как я строил магическую империю 3

Геном хищника. Книга седьмая

Гарцевич Евгений Александрович
7. Я - Легенда!
Фантастика:
боевая фантастика
рпг
фэнтези
попаданцы
5.00
рейтинг книги
Геном хищника. Книга седьмая

Отряд

Валериев Игорь
5. Ермак
Фантастика:
альтернативная история
5.25
рейтинг книги
Отряд

Твое сердце будет разбито. Книга 1

Джейн Анна
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Твое сердце будет разбито. Книга 1

Бастард Императора. Том 11

Орлов Андрей Юрьевич
11. Бастард Императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 11

Враг из прошлого тысячелетия

Еслер Андрей
4. Соприкосновение миров
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Враг из прошлого тысячелетия

Сталин

Радзинский Эдвард Станиславович
3. Загадки жизни и смерти
Проза:
историческая проза
7.36
рейтинг книги
Сталин

Наномашины, сынок! Том 1

Новиков Николай Васильевич
1. Чего смотришь? Иди книгу читай
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наномашины, сынок! Том 1

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Охотник за головами

Вайс Александр
1. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Охотник за головами

Отверженный. Дилогия

Опсокополос Алексис
Отверженный
Фантастика:
фэнтези
7.51
рейтинг книги
Отверженный. Дилогия

Приключения русского дебютанта

Штейнгарт Гари
Проза:
современная проза
5.00
рейтинг книги
Приключения русского дебютанта

Имперец. Том 3

Романов Михаил Яковлевич
2. Имперец
Фантастика:
боевая фантастика
попаданцы
альтернативная история
7.43
рейтинг книги
Имперец. Том 3

День поминовения

Нотебоом Сэйс
Проза:
современная проза
5.00
рейтинг книги
День поминовения