gpt4 book ai didi

objective-c - 从 Objective-C 中的方法返回多个对象

转载 作者:太空狗 更新时间:2023-10-30 03:47:05 25 4
gpt4 key购买 nike

我有一个将 NSMutableArray 作为参数的方法,我希望它返回该数组、在该方法中创建的另一个数组以及该方法创建的 int。我意识到这可以通过创建一个包含所有这些对象的数组并返回它,然后在方法外部将它们从数组中删除来完成,但是还有另一种方法可以返回多个对象吗?

最佳答案

传回多个值的典型方法是:

  • 通过引用添加额外的参数(例如,通常传递 NSErrors这样)
  • 将它们传递回一些其他结构或对象,通常是NSDictionary 或自定义类

以上是适用于许多情况的良好解决方案,但这里是另一种可能在其他情况下效果最好的解决方案:

在你的方法中添加一个 block :

- (void)myMethodWithMultipleReturnObjectsForObject:(id)object returnBlock:(void (^)(id returnObject1, id returnObject2))returnBlock
{
// do stuff

returnBlock(returnObject1, returnObject2);
}

然后使用这样的方法:

[myMethodWithMultipleReturnObjectsForObject:object returnBlock:^(id returnObject1, id returnObject2) {
// Use the return objects inside the block
}];

上面例子中的返回对象只能在 block 内使用,所以如果你想让它们在 block 外使用,只需设置一些 __block 变量。

// Keep the objects around for use outside of the block
__block id object1;
__block id object2;
[myMethodWithMultipleReturnObjectsForObject:object returnBlock:^(id returnObject1, id returnObject2) {
object1 = returnObject1;
object2 = returnObject2;
}];

关于objective-c - 从 Objective-C 中的方法返回多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3696910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com