我正在将我的应用程序从 Syncronous 转换为 Asyncronous HTTP 请求,并且遇到了一个看起来需要对应用程序如何处理其数据进行大量修改的问题。让我试着解释一下
以前是这样的:
- Class1
,Class2
并且Class3
都是UIViewController
-Helper 类 -Content 显示类的子类
他们做的事情大相径庭,但共同的特点是他们与助手类的交互。他们以多种不同的方式从用户那里收集请求的详细信息,然后最终将请求发送到帮助程序类。
当它同步完成时,助手类将返回数据。然后每个类将解释数据(XML 文件)并通过 segue 将它们传递给 Content 显示类
所以大致是这样的:
第一类:
//Get user input
SomeData *data = [helperclass makerequest];
id vcData = [data process];
[self performSegueWithIdentifier:@"segueIdentifier"];
---
- (void)prepareForSegue:(UIStoryboardSegue *)segue
{
DestinationViewController *destination = (DestinationViewController *)segue.destinationViewController;
destination.data = vcData;
}
内容展示类:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.data presentdata];
}
现在看起来像这样
为了解决这个问题,我首先让它与 Class1 一起工作,以便将修复程序部署到 class2 和 class3。所以 class1 和 helper 现在像这样交互
第一类:
//Get user input
SomeData *data = [helperclass makerequestWithSender:self];
id vcData = [data process];
[self performSegueWithIdentifier:@"segueIdentifier"];
---
- (void)prepareForSegue:(UIStoryboardSegue *)segue
{
DestinationViewController *destination = (DestinationViewController *)segue.destinationViewController;
destination.data = vcData;
}
现在我面临的最大问题是如何将 helperclass 中的数据返回到Class1
. 我设法让它工作
(void)makeRequestWithSender:(Class1*)sender
{
[NSURLConnection sendAsynchronousRequest:...
{
[sender sendData:data];
}
}
但是,当我将其推广到其他 2 个 GUI 类别时,这将构成我遇到困难的请求。我的第一个想法是设置,但在告诉我没有方法或类似方法sender:(id)
的那一行失败了。[sender sendData:data]
id
sendData:
希望我在这里不是太含糊,你们可以提供帮助。如果需要,我将能够发布代码片段,但现在任何人都可以就如何构建此请求的代码提供更好的建议吗?