2011-03-30 57 views

回答

11

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

+4

*除非GCC优化相同的常量字符串出现* - 这种情况。 – kennytm 2011-03-30 09:47:11

+0

这是否意味着如果在10个位置使用#define,它将替换字符串并最终创建更多对象。例如:if([a isEqualToString:KYes]){} ...这将是if([a isEqualToString:@“Yes”]){},1个对象。另一个我们初始化为NSString * status = KYes的地方,这将是.. NSString * status = @“是”,第二个对象 – andyPaul 2015-11-15 15:53:15