-(NSArray*)getNeighbors{
NSArray *values = [neighbors allValues];//neighbors is NSMutableDictionary
return values;
}
我有一个非常简单的代码,但我不确定是否需要添加“retain”...
答案 0 :(得分:2)
你没有。调用getNeighbors
的方法应该保留返回的数组。
答案 1 :(得分:1)
这取决于您将如何处理返回值。 - [NSArray allValues]返回新数组,这是自动释放的,所以如果你计划长时间使用该数组(在函数范围之外),那么你应该保留它(但不能保留 - (NSArray *)getNeighbors)。保留数组(如果需要外部):
-(void) foo {
ivar_array = [[someObject getNeighbors] retain];
}
或者您不需要保留的情况:
-(void) foo {
NSArray* array= [someObject getNeighbors];
//do something with that array
}
答案 2 :(得分:0)
您可以将retain
和release
发送到从NSObject
继承的每个对象,具体取决于您的需求。但在你的情况下,values
是一个你不拥有的对象,你应该特别注意你如何处理它。有关详细信息,请参阅Object Ownership and Disposal
答案 3 :(得分:0)
你没有。此页面(1)有详细说明。