Я читаю несколько сообщений и в руководствах Apple, которые в Objective-C Строковые константы должны быть определены как extern NSString *const MY_CONSTANT;
и что следует избегать директивы #define. Почему это? Я знаю, что #define
запускается в прекомпиляцию, но вся строка будет иметь один и тот же адрес памяти. Единственное преимущество, которое я прочитал, состояло в том, что если константа должна быть обновлена или изменена, вам не придется перекомпилировать весь проект. Так что я должен объяснить, почему #define следует избегать?
Спасибо
UPDATE: В этом случае полезно использовать #define или есть лучший подход?
/* Constants Definition */
#define SERVER_URL @"http://subdomain.domain.edu.ar/Folder/"
NSString *const ServerURL = SERVER_URL;
NSString *const LoginURL = [email protected]"welcome.asp";
NSString *const CommandURL = [email protected]"com.asp";