Я знаю, что этот вопрос задавался несколько раз, но мой немного отличается. Прежде чем закрыть это как дубликат, пожалуйста, прочитайте его полностью.
Есть много сообщений о переполнении стека, которые говорят: «Лично я ненавижу MACROS, не используйте это дерьмо». Я прочитал все это, и мой случай отличается. Я пытаюсь определить URL-адреса, используемые в программном обеспечении (приложении iOS), с помощью #define macros.
Я согласен, что использование константных строк лучше, чем макросы #define. Но в мире API, основанном на REST, который принимает параметры запроса как часть URL, как вы все еще можете использовать строки const для представления изменяющегося URL?
Вместо http://api.myblog.com/posts?entryid=%@
Сервер API, который следовал бы принципам REST
http://api.blog.com/posts/entries/[entryid]
В первом типе URL является http://api.myblog.com/posts для всех записей, и они не изменяются. Возможна константная строка.
В последнем типе URL меняется с каждой записью, и я использую макрос, который расширяется до полного URL, как это.
#define GET_ENTRY_URL(__MY_ENTRY_ID__) [NSString stringWithFormat:@"http://api.myblog.com/posts/entries/%@", __MY_ENTRY_ID__];
Есть ли в моем методе недостатки дизайна?
Хотелось бы узнать ваши входные данные.
Спасибо.