NSURLSession与后台获取

Gan*_*ham 6 cocoa-touch objective-c ios ios7

好的,我正在查看SimpleBackgroundFetch示例项目,它在App Delegate中使用以下内容:

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:someTimeInSeconds];
//^this code is in didFinishLaunchingWithOptions


-(void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
  //do something + call completionHandler depending on new data / no data / fail
}
Run Code Online (Sandbox Code Playgroud)

所以,基本上我假设,我在这里调用我的应用程序服务器,以获取一些数据.

但后来我看到了NSURLSession 文档,它有类似的方法

– downloadTaskWithURL:
Run Code Online (Sandbox Code Playgroud)

并说它如下:

此API提供了一组丰富的委托方法,用于支持身份验证,并使您的应用能够在您的应用未运行时执行后台下载,或者在iOS中,当您的应用暂停时执行后台下载.

那么这两个API之间的区别是什么?如果我想不时地从我的应用程序的服务器下载一些数据,我应该使用什么?

我只是不确定两者之间的区别,所以我只是觉得我应该在这里澄清我的怀疑.去StackOverflow!

Tri*_*ops 10

这些是完全不同的东西.

  • 后台获取:系统会在某个时间启动您的应用程序(启发式),您的工作就是开始为用户下载新内容.

  • NSURLSession:NSURLConnection的替换,允许在应用程序暂停后继续下载.