Iphone 我应该释放一个';s指向数组中的项目?

Iphone 我应该释放一个';s指向数组中的项目?,iphone,objective-c,Iphone,Objective C,不太清楚如何表述,但我应该在这种情况下释放一个变量: NSString *string = @"HELLO WORLD"; NSArray *array = [NSArray arrayWithObject:string]; NSString *shouldIReleaseThis = [array objectAtIndex:0]; NSLog(@"%@", shouldIReleaseThis); //???? [shouldIReleaseThis release] ??????

不太清楚如何表述,但我应该在这种情况下释放一个变量:

NSString *string = @"HELLO WORLD";
NSArray *array = [NSArray arrayWithObject:string];  
NSString *shouldIReleaseThis = [array objectAtIndex:0];
NSLog(@"%@", shouldIReleaseThis);
//????  [shouldIReleaseThis release] ??????

//Do stuff with array

我应该释放它吗?为什么或者为什么不?

你没有它的所有权(你没有从
新的
所有的
保留
或者
复制
)中获得该引用,所以你不应该发布它。有关Cocoa中内存管理规则的简要但完整的概述,请参见Apple's。

您不拥有它(您没有从
new
alloc
retain
copy
中获得该引用),因此您不应该发布它。有关Cocoa中内存管理规则的简要但完整的概述,请参见Apple's。

谢谢,这正是我想要的。我读过关于内存管理的书,但不知何故,“所有权”的概念并没有真正被理解。这是一个非常好的答案,适用于Cocoa中所有变量的释放+1.谢谢,那正是我想要的。我读过关于内存管理的书,但不知何故,“所有权”的概念并没有真正被理解。这是一个非常好的答案,适用于Cocoa中所有变量的释放+1.