2011-03-30 38 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