· 字符串聲明,以下三種方法:
NSString *a0 = [[NSString alloc]initWithFormat:@"kevin"]; //方法一
NSString *a1 = [[NSString alloc]initWithString:@"kevin"]; //方法二
NSString *a2 = @"kevin"; //方法三
NSString *a3 = [[NSString alloc]initWithFormat:@"kevin"];
區別1:方法一用Format進行字符串的聲明,方法二用String方法聲明,第三種方法和用String聲明基本一致,但是不初始化內存空間,方法一和方法二中,a0和a1使用結束後,需要進行內存釋放,但是a2不需要進行內存釋放。
區別2:用Format初始化的字符串,需要初始化一段動態內存空間,如:0x6a42a40,而用String聲明的字符串,初始化的是常量內存區,如:0x46a8,常量內存區的地址,只要值相同,佔用的地址空間是一致的。所以a1和a2的地址一致,但是a0和a3的地址不一致。