IOS:是否可以在后台保留UIViewController的状态

时间:2014-09-19 19:12:02

标签: ios objective-c xcode

开发IOS应用程序。我需要将一些图像上传到服务器。我正在使用NSURLSessionuploadTaskWithRequest来执行此操作。每件事都以正常方式运作良好。我的要求用户希望使用数据库SQLLite在应用程序中存储一些包含10个以上图像的帖子。稍后会在UITableView中显示所有已存储的帖子以及每个UITableViewCell的按钮。当用户点击每个按钮时,它应该开始将每个POST上传到服务器。所以我认为我应该将UIViewController保留在AppDelegate中,这样当用户转到另一个视图控制器时,不应该杀死上传过程。

我的问题:当用户关闭应用程序时,UIViewController POST上传是Stoping的过程。所以我想知道如何保持我的UIViewController即使在应用程序关闭或进入后台。

有没有更好的方法来满足我的要求。

1 个答案:

答案 0 :(得分:0)

以下是一些更好的方法!

  1. 使用单身人士。在我的应用程序中,我通常会创建一个名为“DataHandler”的类来处理所有NSURLSession / CoreData / etc的东西,所以我所要做的就是

    [DataHandler uploadImages:images];
    
  2. 当我需要回复信息时,我会打电话给

        self.tableData = [DataHandler lastUploadedImages];
    

    这样我就不用担心我的视图控制器是否还活着。

    1. 让AppDelegate执行NSURLSession操作。你已经知道AppDelegate是持久存在的,所以为什么不让那个人去做呢!这是一个例子:

      UIApplication *sharedApplication = [UIApplication sharedApplication];
      AppDelegate *appDelegate = [sharedApplication delegate];
      // this is the method you would add to your AppDelegate.  Make sure to
      // import your AppDelegate's header file so your ViewController can
      // call the method.
      [appDelegate uploadImages:images];