定义Vs静态常量Vs NSString - 存储器的观点

Abh*_*nav 11 iphone cocoa-touch constants nsstring

什么是最好的赌注:

#define kYes @"Yes"
Run Code Online (Sandbox Code Playgroud)

static NSString *const kYes = @"Yes";
Run Code Online (Sandbox Code Playgroud)

NSString *kYes = @"Yes";
Run Code Online (Sandbox Code Playgroud)

从内存消费的角度来看.请记住,应用程序中将有数千个常量.

ref*_*log 11

从内存的角度来看 - 静态变量更好,因为它被引用一次.#define会将字符串插入到所有出现的位置,通过它 - 乘以内存使用量...(除非GCC优化相同的常量字符串出现,它实际上可能.在这种情况下 - 没有区别)

  • *除非GCC优化相同的常量字符串出现* - 在这种情况下. (4认同)