gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-30 03:57:23 24 4
gpt4 key购买 nike

我正在使用 Facebook iPhone SDK 编写一个简单的应用程序。 Facebook 代码大部分是异步的,我启动一个操作并在委托(delegate)调用中异步接收响应:

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

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

给定操作(例如 FBRequest)的多个实例经常使用相同的回调。这意味着我必须将条件子句放入回调处理程序中才能知道哪些操作已完成。

这会导致困惑,一种“异步面条代码”怪物,因为代码充满了条件,几乎看不到程序流逻辑。有没有更好的方法来编写这样的代码? (很遗憾我们在 iPhone 上没有 block 。)我考虑过引入一个简单的状态机,但我不确定它是否有帮助。

最佳答案

我不熟悉 Facebook SDK,但您可以创建一个子类来实现 FBRequestDelegate 协议(protocol)(如果这样调用的话),用于您需要 Facebook 的每个特定任务。这样,您就有 5 个实现 - fbOperationFinished: 的类,而不是一个具有由 ifswitch 分隔的 5 个不同执行路径的类。

关于iphone - 我如何处理异步意大利面条代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2213118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com