Определить против Enum
#define
может быть проще набирать, потому что вам не нужно =
или вам не нужно беспокоиться о конце ,
между каждым элементом. Но у вас есть дополнительный #define
, который менее СУХОЙ. Я использую перечисления, но в любом случае это нормально.
typedef enum {
SongNameLabelTag = 1,
PlayButtonTag = 2
} MyViewControllerTags;
против
#define SongNameLabelTag 1
#define PlayButtonTag 2
Соглашение об именах
Я называю теги в формате: <name><short type description>Tag
например. SongNameLabelTag
, PlayButtonTag
Значения тега в IB
Цель здесь - не давать элементу один и тот же тег.
Мне неприятно вспоминать последний тег, который я использовал при работе в IB.
Поддержание ваших определений в актуальном состоянии кажется решением, но это раздражает, и бывают случаи, когда оно не работает.
например. Перемещение элемента в другой контроллер представления. (Я обычно извлекаю группы элементов в отдельные контроллеры представления. Это приведет к тому, что ваша нумерация начнется со странных номеров или столкнется с существующими элементами.)
При быстром прототипировании и быстрой работе меня тормозит необходимость добавления каждого тега элемента как #define
. Мне нравится работать как можно быстрее:)
Мое решение - использовать случайные числа . Максимальное значение, которое вы можете использовать, составляет NSIntegerMax (32-bit)
, что составляет 2147483647.
Самое главное, они должны быть быстро доступны!
Просто добавляйте эту ссылку в закладки каждый раз, когда вам нужны случайные теги:
http://www.random.org/integers/?num=100&min=1&max=999999999&col=1&base=10&format=html&rnd=new