我想从一个方法返回多个值和我已经决定要使用的阵列这样做内存管理
-(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) –