1

我有一个应用程序,我需要在其中有一个设置页面,该页面具有用户的一些凭据,然后他可以编辑它。它是从 httprequest 获取的数组加载的表格视图。通过单击其中的每一个,它将具有选择转到另一个视图并更新该值并返回。我已经像这样在该更新视图上对服务器进行了更新调用..

 dispatch_async(backgroundQueue_, ^{
            [self performSelectorInBackground:@selector(load) withObject:nil];

            dispatch_sync(dispatch_get_main_queue(), ^{
                 [self showHUD];

            });

因为在主队列中我正在执行弹回操作。所以我需要在后台调用更新服务。但问题是当我回来时我在设置中调用另一个服务viewcontroller。加载更新的值。有时请求的代表正在崩溃。我正在这样调用服务。

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
   [request setPostValue:uidstr forKey:@"userId"];
     request.userInfo=[NSDictionary dictionaryWithObject:@"update" forKey:@"type"];
    [request setPostValue:self.string forKey:@"age"];
    [request setDelegate:self];
    [request setCachePolicy:ASIAskServerIfModifiedCachePolicy|ASIFallbackToCacheIfLoadFailsCachePolicy];
    [self showHUD1];    
    [request startAsynchronous];

任何人都可以指出我如何在不崩溃我的应用程序的情况下做到这一点。我认为问题是代表得到零。

4

2 回答 2

0

由于开发人员不再支持此框架,因此更好地放弃使用 ASIHTTP。您将不会获得对未来 iOS 版本可能更改的支持。

于 2013-03-04T12:54:54.613 回答
0

将您的网络请求与视图控制器代码分离。这样,如果视图被卸载,网络委托仍然存在。

例如:创建一个与网络进行所有通信的 NetworkRequest 单例类,然后您可以使用类似 NSNotifications 的机制,或者视图控制器可以成为委托的单例类中的 @protocol 接口来传递结果和状态更改如所须。

有关 Objective-C 中单例的好教程,请参阅:http ://www.galloway.me.uk/tutorials/singleton-classes/

于 2013-03-04T12:31:59.130 回答