Определить Vs статическую константу Vs NSString - Точка зрения памяти
Что представляет собой лучший выбор между:
#define kYes @"Yes"
и
static NSString *const kYes = @"Yes";
и
NSString *kYes = @"Yes";
с точки зрения потребления памяти. Помня о том, что в приложении будут тысячи констант.
Ответ 1
С точки зрения памяти - статическая переменная лучше, так как она ссылается один раз.
#define вставляет строку во все вхождения, тем самым - умножая использование памяти... (то есть, если GCC не оптимизирует те же самые постоянные строки, которые на самом деле могут быть в этом случае - нет разницы)