当前位置:  开发笔记 > IOS > 正文

我如何处理异步意大利面条代码?

如何解决《我如何处理异步意大利面条代码?》经验,为你挑选了1个好方法。

我正在使用Facebook iPhone SDK编写一个简单的应用程序.Facebook代码主要是异步的,我开始一个操作并在委托调用中异步接收响应:

- (void) doSomething {
    [FBSomething startOperationWithDelegate:self];
}

- (void) fbOperationFinished: (FBSomething*) operation {…}

通常,有更多的给定操作(例如FBRequest)使用相同的回调.这意味着我必须将一个条件子句放入回调处理程序,以了解这些操作中的哪一个已完成.

这导致了凌乱,一种"异步意大利面条代码"怪物,因为代码充满了条件,并且几乎不可能看到程序流逻辑.有没有更好的方法来编写这样的代码?(遗憾的是我们在iPhone上没有块.)我想过引入一个简单的状态机,但我不确定它会有所帮助.



1> MrMage..:

我不熟悉Facebook SDK,但您可以创建一个子类来实现FBRequestDelegate您需要Facebook的每个特定任务的协议(如果它被称为那样).这样,您可以说5个类实现- fbOperationFinished:而不是一个类,其中5个不同的执行路径由ifs或switches 分隔.

推荐阅读
重庆制造漫画社
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有