开发IOS应用程序。我需要将一些图像上传到服务器。我正在使用NSURLSession
和uploadTaskWithRequest
来执行此操作。每件事都以正常方式运作良好。我的要求用户希望使用数据库SQLLite在应用程序中存储一些包含10个以上图像的帖子。稍后会在UITableView
中显示所有已存储的帖子以及每个UITableViewCell
的按钮。当用户点击每个按钮时,它应该开始将每个POST上传到服务器。所以我认为我应该将UIViewController
保留在AppDelegate
中,这样当用户转到另一个视图控制器时,不应该杀死上传过程。
我的问题:当用户关闭应用程序时,UIViewController
POST上传是Stoping的过程。所以我想知道如何保持我的UIViewController即使在应用程序关闭或进入后台。
有没有更好的方法来满足我的要求。
答案 0 :(得分:0)
以下是一些更好的方法!
使用单身人士。在我的应用程序中,我通常会创建一个名为“DataHandler”的类来处理所有NSURLSession / CoreData / etc的东西,所以我所要做的就是
[DataHandler uploadImages:images];
当我需要回复信息时,我会打电话给
self.tableData = [DataHandler lastUploadedImages];
这样我就不用担心我的视图控制器是否还活着。
让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];