0

我确信我的问题有更好的术语,但我解释它的最好方法是通过一个例子:

NSString* newName = [newPerson name];

这不是我想要的,因为如果 newPerson 的名字在这一行之后的某个时刻被释放,它会破坏 newName 变量。如何将 newName 设置为 newPerson 名称的“值”,从而有效地保持它们彼此独立?

4

1 回答 1

1

使用copy.

NSString *newName = [[newPerson name] copy];

或者,如果您使用的是 MRC,那么您应该保留该值:

NSString *newName = [[newPerson name] retain];

然后在适当的稍后时间,您需要调用release.newName

于 2013-09-24T23:15:32.273 回答