Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Быстрое обращение к данным многомерных словарей - Objective-C

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Objective-C In-app purchases http://www.cyberforum.ru/objective-c/thread899981.html
Всем добрый вечер. Я впервые сталкиваюсь с In-app purchases, у меня такой вопрос. Я так понял, что тестировать In-app purchases можно, только если создан тестовый пользователь. Клиент предоставил...
Objective-C Наложение изображений на фотографию Привет всем! Есть какие-нибудь хорошие решения в сети, для вот такой задачи: наложение изображения на фотографию(ну например на фотографию маску бетмена наложить и сохранить в библиотеке, ну и все... http://www.cyberforum.ru/objective-c/thread899552.html
Objective-C необычная просьба, оформить открытку.Все по теме ветки)
вообщем идея такая, просьба посдказать как оформить это в objective - c, туго с программингом, просто друг пишет на objective-c, помогите пожалуйста, буду очень благодарен, текст зафигачу в...
Письмо со ссылкой Objective-C
Добрый вечер! Отправляю письмо через метод openURL. Как добавить в текст письма кликабельную ссылку?
Objective-C Программирование под iOS http://www.cyberforum.ru/objective-c/thread896668.html
Здравстувуйте, нужна книга: "Программирование под iOS. Для профессионалов" Дж. Конвэй, А. Хиллегасс Питер 2013. ISBN: 978-5-4461-0102-3, в эл. виде, любом. Всё что смог найти, это пару битых ссылок...
Objective-C картинку загнать в четырёхугольник Всем добрый вечер! Нужно написать такой метод, у которого на входе была бы картинка и массив из 8-ми чисел - координаты 4-х точек прямоугольника, в который нужно загнать эту картинку. Точки будут... подробнее

Показать сообщение отдельно
noname_club
103 / 94 / 10
Регистрация: 01.05.2013
Сообщений: 598
23.07.2013, 22:08  [ТС]
вернемся к теме.

если скажем класс категория с методами index и key или вовсе литералы могут облегчить сам вызов метода для доступа к элементу.

Однако что касается словарей. То метода key в этом случае становится недостаточно.

Так как у словарей есть ключи.

Objective-C
1
2
// доступ к элементу по ключу
id element = [dictionary key: @"elementKey"];
Причем эти ключи надо набирать в проекте до сотни раз! и каждый раз одни и теже.

Вот тут на помощь и приходят макросы.

давайте заставим Xcode подсказывать нам эти самые ключи по первым вводимым буквам

Обычно количество ключей в многомерном словаре невелико и может находится в пределах 20-30

пример ключей многомерного словаря реального приложения

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#define d_id @"id"
#define d_title @"title"
#define d_title2 @"title2"
#define d_info @"info"
 
#define d_items @"items"
 
#define d_usertext @"usertext"
#define d_type @"type"
#define d_data @"data"
#define d_visible @"visible"
#define d_level @"level"
#define d_mode @"mode"
#define d_tag @"tag"
 
// новые ключи
 
#define d_news @"news"
#define d_product @"product"
#define d_practic @"practic"
#define d_sid @"sid"
#define d_text @"text"
#define d_img @"img"
#define d_img2 @"img2"
#define d_imagedata @"imagedata"
#define d_tip @"tip"
#define d_description @"description"
#define d_description_sound @"description_sound"
#define d_theory @"theory"
 
....
после объявления сабжа в любом из глобальных синглтонов (ядра) приложения, становятся видны подсказки для ввода ключей

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

Быстрое обращение к данным многомерных словарей

сравнение кода
Objective-C
1
2
id element = [dictionary key: @"elementKey"];
id element = [dictionary key: d_elementKey];
Нельзя не сказать, что данный подход имеет смысл только при очень частом использовании ключей словаря.

в остальных случаях достаточно строк @"ключ"
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru