Objective c 将登录视图控制器与ASIHttpRequest和情节提要一起使用

Objective c 将登录视图控制器与ASIHttpRequest和情节提要一起使用,objective-c,xcode,ios5,asihttprequest,storyboard,Objective C,Xcode,Ios5,Asihttprequest,Storyboard,好的,我正在构建一个应用程序,它将在多个地方使用ASIHttpRequest从web服务获取JSON数据,或者发布到web服务。我已经让它工作了,但是我真的不喜欢在不同的视图控制器周围散布请求对象的几个实例(登录视图控制器、tableview控制器和详细视图控制器。我想将所有ASIHttpRequest方法移到一个类中,然后只获取从web服务返回的值字典。问题是委托方法没有返回我需要返回的值 对于如何合并所有创建HTTPRequest并在请求完成时返回值的方法,有什么建议 如果需要,我可以发布代

好的,我正在构建一个应用程序,它将在多个地方使用ASIHttpRequest从web服务获取JSON数据,或者发布到web服务。我已经让它工作了,但是我真的不喜欢在不同的视图控制器周围散布请求对象的几个实例(登录视图控制器、tableview控制器和详细视图控制器。我想将所有ASIHttpRequest方法移到一个类中,然后只获取从web服务返回的值字典。问题是委托方法没有返回我需要返回的值

对于如何合并所有创建HTTPRequest并在请求完成时返回值的方法,有什么建议

如果需要,我可以发布代码,但这实际上更多的是一个一般性问题,而不是一个具体问题。如果有任何关于如何做到这一点的教程,我将不胜感激。我希望我的代码高效、美观:)


谢谢!

您的问题将是异步。我不确定您所说的整合是什么意思,但您可以使用singleton(您可以使用应用程序代理)来调用请求。因此,您可以执行以下操作:

[(MyAppDelegateClass *)[UIApplication sharedApplication].delegate doLoginStuff:(NSDictionary *)params delegate:self];
如果您以异步方式执行所有这些操作,则不能仅调用此方法并让其返回某些内容。您将不得不对视图控制器进行某种回调,这是ASI的基本工作方式。最多,您可以最小化生成请求的代码并设置任何重复属性

我不知道你所说的实例到处浮动是什么意思。如果你担心的是内存,那么重用同一个对象也没什么不同。ASI通常使用自动释放的请求,因此这与在“合并”中创建它是一样的方法。如果它只是干净的代码,我会使用单例方法,并可能在您使用前缀文件创建和导入的某些类型的实用程序类中进行基于c的快捷方法调用。但是,您需要在视图控制器中使用回调方法,这样它就不会比预期的更干净了。我与您分享您的痛苦啊

当任何请求返回时,我几乎总是有一个解析结果的方法。通常我只使用一种类型的web服务,因此有一个解析结果的方法(还将其记录到NSLog以进行调试)也会返回NSDictionary或NSArray