什么是以下两者的区别:
NSString *string1 = @"This is string 1.";
和
NSString *string2 = [[NSString alloc]initWithString:@"This is string 2.];
为什么我没有分配和初始化第一个字符串,但它仍然能工作? 我以为由于NSString是一个对象,所以我应该分配它?
在Cocoa Touch中,
-(IBAction) clicked: (id)sender{
NSString *titleOfButton = [sender titleForState:UIControlStateNormal];
NSString *newLabelText = [[NSString alloc]initWithFormat:@"%@", titleOfButton];
labelsText.text=newLabelText;
[newLabelText release];
}
为什么我没有为titleOfButton字符串分配和初始化内存?我调用的方法是否会为我完成这个过程?
此外,我正在使用XCode 4,但我不喜欢iOS 5等版本,因此如果有影响的话,我不使用ARC。请不要告诉我应该使用ARC,我只是想弄清楚为什么这样。