在JavaScript中,有這樣的承諾概念,您可以將函數作爲參數傳遞給另一個函數。例如:Javascript promise in objective-c
doSomething(doSomethingElse());
我已經在Objective-C中編寫了一個基於塊的代碼。代碼的示例用法如下:
[MyObject doSomethingWithSuccessHandler:^()
{
[My object doSomethingMoreWithSuccessHandler:^()
{
[myObject saveTheResults];
}
failureHandler:^(MYError *myError)
{
[MyObject logError:myError];
}];
}
failureHandler:^(MYError *myError)
{
[MyObject logError:myError];
}];
的相反,我的基於塊的碼被用作顯示在上面的片段的方式,我想它以下述方式被使用(如JavaScript諾言) :
[MyObject doSomethingAndOnSuccess:[myObject doSomethingMoreAndOnSuccess:[myObject saveTheResults] onFailure:[myObject logError] ] onFailure:[myObject logError] ];
這可能嗎?這只是爲了代碼的可讀性,您可以看到,在第一種情況下,我想避免使用很多金字塔代碼。
@Cocoadelica,或者您誤解了我的問題,或者我無法在您提供的鏈接中看到預期的解決方案。爲了消除混淆,我已經實現了基於塊的代碼,並且我非常瞭解基於塊的編程,我正在尋找的方法是將方法作爲參數傳遞給其他方法,如問題的最後一個代碼片段中: [MyObject doSomethingAndOnSuccess:[myObject doSomethingMoreAndOnSuccess:[myObject saveTheResults] onFailure:[myObject logError]] onFailure:[myObject logError]]; –
啊是的,我誤讀了。道歉:)今天有點困了。 – Cocoadelica
查看Facrbook和Parse的Bolts。這些會給你你想要的。 – Fogmeister