我有一个与Web服务对话的iPhone应用程序,并将数据从Web服务提取到设备。将数据推送到核心数据,然后更新GUI。
执行此操作的过程如下:
我有很多这些异步调用,用于刷新数据的不同部分。我的GUI客户端订阅了许多这些通知。
我发现,当我回到调试时,GUI端的代码有点混乱。因为操作是由通知触发的。
我真正想做的是在第2,3和4项周围使用某种类型的包装函数。这样代码看起来更流线型。
if (![TransactionLayerModelClass getDataFromWebServerWrapper: args]) {
// error actions
} else {
// good actions
}
我甚至不确定这是否可行,并且在谷歌搜索中找不到任何解决方案。但如果是的话,我认为它会显着提高我的代码的可读性。
答案 0 :(得分:2)
要编写看起来像你想要的代码,你需要使用块:
[TransactionLayerModelClass
getDataFromWebServerWrapper: args
errorBlock:^(NSError* error)
{
// error actions
}
successBlock:^(NSData* data)
{
// good actions
}];
仅在定位iOS 4及更高版本时才能使用块。它们非常有用,虽然它们易于滥用和滥用,但如果正确实施,这是它们理想的应用之一。