我想從一個方法返回多個值和我已經決定要使用的陣列這樣做內存管理
-(NSArray *) foo {
// some operations here
return @[node, [NSNumber numberWithInt:i], [NSNumber numberWithBool:flag]];
}
一個例子是
-(NSArray *) foo {
return @[@"hi", [NSNumber numberWithInt:3], [NSNumber numberWithBool:YES]];
}
這是一個優選的方式,因爲有一個像這樣創建的NSArray
對象,需要保留,但可以在以後沒有新的所有者時發佈,這是否真的需要在自動釋放池中?
-(NSArray *) foo {
@autorelease {
// some operations here
return @[node, [NSNumber numberWithInt:i], [NSNumber numberWithBool:flag]];
}
}
你可以寫成'@ [node,@(i),@(flag)]' – hypercrypt
我已經編輯了你的問題,專注於內存管理方面。關於如何返回多個值的問題已經在SO上至少提出了兩次。這有答案:[從方法返回多個值](http://stackoverflow.com/questions/1692005/returning-multiple-values-from-a-method-in-objective-c?rq=1) –