在Objective C中继续传递样式代码

时间:2014-01-22 04:30:15

标签: objective-c functional-programming objective-c-blocks continuation-passing

我们可以在Objective C中编写Continuation传递样式代码吗? 如果是的话,你能举一些例子吗?

1 个答案:

答案 0 :(得分:1)

Continuation Passing Style或CPS是一种使用匿名函数替换return语句的编程风格。函数将取另一个函数作为参数,而不是返回值。然后,当它到达它将返回一个值的点时,它会调用传入的函数,而不是将值作为参数。

在Objective-C中,我们现在以块的形式存在匿名函数,因此可以使用块来实现CPS。

以下是CPS外观的示例。这是标准风格的代码:

NSString *string = [obj stringWhatever];
    // use string

此处它被转换为续传风格:

[obj stringWhatever: ^(NSString *string) {
    // use string
}];