-(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