-(NSArray*)getNeighbors{
NSArray *values = [neighbors allValues];//neighbors is NSMutableDictionary
return values;
}
我有一个非常简单的代码是这样,但我不知道,我需要加上“保留” ......目标C,返回数组
-(NSArray*)getNeighbors{
NSArray *values = [neighbors allValues];//neighbors is NSMutableDictionary
return values;
}
我有一个非常简单的代码是这样,但我不知道,我需要加上“保留” ......目标C,返回数组
这取决于你将如何处理返回值。 - [NSArray allValues]返回一个新的数组,它是自动释放的,所以如果你打算长时间使用这个数组(在函数范围之外),那么你应该保留它(但不在 - (NSArray *)getNeighbors中)。保留阵列(如果需要的话外):
-(void) foo {
ivar_array = [[someObject getNeighbors] retain];
}
OR的情况下,当你不需要保留:
-(void) foo {
NSArray* array= [someObject getNeighbors];
//do something with that array
}
你不知道。调用getNeighbors
的方法应该注意保留返回的数组。
您可以发送retain
和release
从NSObject
继承的每个对象,这取决于你需要。但在你的情况下,values
是你不拥有的对象,你应该特别注意你如何处理它。欲了解更多信息,请咨询Object Ownership and Disposal
你不知道。此页(1)有详细的解释。
不要称之为getNeighbors。只是“邻居”是标准模式 – bbum 2011-03-15 15:39:52