如何使用方法或函数的返回块?

时间:2015-09-26 01:40:29

标签: objective-c function methods block

我的问题非常简单。从方法或函数或块本身返回块时,如何将返回的块传递给接收返回块的变量?

3 个答案:

答案 0 :(得分:1)

  

我的问题非常简单。从方法或函数返回块或块本身时,如何将返回的块传递给接收返回块的变量?

你如何通过那次回归"任何类型的价值?

指派。

返回一个块没有什么特别之处,它只是一个值 - 在这种情况下是一个块对象的指针值 - 它被返回并分配给一个变量,就像任何其他值一样。如果返回值是,例如,double类型将其存储在相同类型的变量中;如果返回的值是某种块类型,则将其存储在具有相同块类型的变量中。

与具有中等复杂类型声明的任何类型一样,您可能会发现首先使用typedef给它一个不错的短名称更容易。 E.g:

typedef int (^SomeIntFunction)(int, int)

SomeIntFunction selectFunction() { ... }

SomeIntFunction sif = selectFunction();

int result = sif(42, 24);

HTH

答案 1 :(得分:0)

这是一种方式:

BundleConfig

答案 2 :(得分:0)

首先声明你的块语法。

#import ...的底部写下以下语法。

typedef void(^completionBlock) (NSString *message);

现在用块创建函数:

- (void)callFunctionWithBlock: (NSString *)text completion: (completionBlock)callBlock {
    NSLog(@"%@", text);

    callBlock([NSString stringWithFormat:@"block with return message: %@", text]);
}

调用您的函数:

[self callFunctionWithBlock:@"testing block" completion:^(NSString *message) {
            NSLog(@"%@", message);
}];