Sea*_*ess 7 iphone closures design-patterns objective-c
也许这只是我最近一直在使用http://nodejs.org/这一事实,但Objective-C(iphone)中缺少关闭一直很难解决.
例如,我正在创建服务类.每个服务类都可以有多个方法,每个方法都会生成不同的URL请求.我可以使用委托模式,但这意味着每次我想在其上调用方法时都必须创建一个新服务(因为它必须存储该请求的委托和选择器,并且新方法调用将覆盖它们) .
对我来说更难的是,我不能轻易地将局部变量保留在回调范围内.我必须存储我想要发送回服务类本身的委托的任何内容,这使得在每个类上拥有多个方法变得更加困难.
你是如何做到这一点的呢?我应该放弃抱怨并以另一种方式做到吗?
zak*_*rya 10
最近引入Objective-C的块实现了闭包.唯一的问题是你不能在iPhone上使用它们.这里有第三方解决方案,Plausible Blocks - 他们也在iPhone上带来了这种功能.
更新:可以在此处找到使用iPhone上的块的示例项目.
每当你发现自己需要多个代表时,答案就是通知.
对于类似服务类的东西,您可能会制作一个单例,并在通过通知完成服务请求时通知相关方.
并不是说块不是解决这个问题的有趣方法,只是我认为你应该知道有其他选择.