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.