Я хочу упростить написание «клеевого» кода в своем приложении.
Моя цель имеет что-то вроде:
MAKE_KEY(keyname)
расширяться как
#define keyname @"keyname"
К сожалению, я почти уверен, что не могу использовать #define в #define.
Итак, я планирую расширить:
MAKE_KEY(keyname)
as
keyname @"keyname"
чтобы я мог написать:
#define MAKE_KEY(USER_ID)
и получить
#define USER_ID @"USER_ID"
Как мне это сделать?
Покажите, как вы хотите использовать расширенные значения для решения вашей проблемы
Я хотел бы сгенерировать #define MY_CONST @"MY_CONST"
, не набирая два раза слово MY_CONST (потому что мне нужно обработать их так много…). Затем я буду использовать MY_CONST
везде, где мне это нужно в коде.
Я делаю это, потому что у меня будут такие объекты, как people
, или cities
, или plants
, или animals
и т. д., у которых не будет много методов, а будет много переменных. Эти объекты должны быть сериализуемыми.
Есть два способа сделать это:
Имейте свойство для каждой переменной и напишите соответствующее кодирование с помощью метода кодера (настоящая боль)
Введите все данные в словарь, а затем сериализуйте словарь в encodewithcoder.
Я выбрал решение №2. Но я все еще хотел бы иметь аксессуары. Итак, я мог бы разработать макрос, который бы писал для меня методы доступа, выбирая правильное значение из словаря.
Общим для всех является то, что метод доступа и ключ словаря имеют одно и то же имя.
#define
из#define
. Покажите, как вы хотите использовать расширенные значения, чтобы решить вашу проблему. - person trojanfoe   schedule 19.08.2014