如何从 Objective C 中的块返回?
例如,你会如何在下面的例子中很早?
[myObject loadThenCallback: ^(id response) {
if(!response) {
// quit early
}
// handle response
}];
如何从 Objective C 中的块返回?
例如,你会如何在下面的例子中很早?
[myObject loadThenCallback: ^(id response) {
if(!response) {
// quit early
}
// handle response
}];
您的解决方案还可以(其他人不喜欢大量或提前退货声明),但当然在这种情况下您可以这样做
[myObject loadThenCallback: ^(id response) {
if(response) {
// handle response
}
}];
如果我写有条件的提前返回语句,我更喜欢这段代码:
[myObject loadThenCallback: ^(id response) {
if(!response) return;
// handle response
}];
它是一样的,但我喜欢它的简洁。
您可以在块中使用 return 语句提前返回。
[myObject loadThenCallback: ^(id response) {
if(!response) {
return;
}
// handle response
}];
Objective-C 块或多或少类似于无名函数。通常,像函数一样,return
末尾有 a 。请参阅 Apple 关于代码块的文档。
您可以将 block 视为带有一些额外内置上下文数据的匿名 C 函数。你希望在一个函数中做的所有事情,你都可以在一个块中完成。
return
与在 C 函数中工作的方式相同,return
在块中也可以工作。
[myObject loadThenCallback: ^(id response) {
if(someCondition)
{
return;
}
}];
如果块需要它,请确保返回一个类型。
[myObject callback: ^id(id response) {
if(someCondition)
{
return NULL;
}
return something;
}]