1

下面的结果是什么?

NSString *myStr = [[[NSString alloc] initWithString:@"Hello World."] autorelease];
myStr = [NSString stringWithString:@"Hello Again."];

myStr是正确释放还是崩溃,因为我们会调用autoreleasewhichmyStr现在设置为已经自动释放的字符串?

4

1 回答 1

4

您的代码示例按您期望的方式工作。 autorelease发送消息后,无法以某种方式更改它所指的对象。@"Hello World."和对象是不同的@"Hello Again."对象,即使您的示例使用相同的指针变量来引用它们。

于 2012-03-14T18:02:42.280 回答