【发布时间】:2012-09-06 14:48:50
【问题描述】:
我想从一个方法返回多个值,我决定使用数组来这样做
-(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)] -
我对您的问题进行了一些编辑,以专注于内存管理方面。关于如何返回多个值的问题已经在 SO 上至少被问过两次。这有答案:Returning multiple values from a method
标签: objective-c memory-management