首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对iOS进行背景调查?

如何对iOS进行背景调查?
EN

Stack Overflow用户
提问于 2013-09-13 06:23:09
回答 4查看 179关注 0票数 0

我需要为我的iOS应用程序执行一个非常简单的背景调查。它只需要对我的web服务器进行一次调用,并根据我的应用程序中的某些内容检查它检索的号码。有可能做这样的背景调查吗?如果是这样,我可以做些什么来把它们组合在一起呢?

编辑

为了澄清我所说的背景:我指的是电话中的背景。当应用程序不存在时。可以在后台执行此请求吗?显然,这个应用程序并没有完全退出多任务处理。

EN

回答 4

Stack Overflow用户

发布于 2013-09-13 07:01:12

这听起来像是NSOperationQueue的完美选择。

http://www.raywenderlich.com/19788/how-to-use-nsoperations-and-nsoperationqueues

您可以编写一个操作,然后在需要时将其放入队列中。

或者,更简单的是,你可以只做一个非常简单的异步调用。

代码语言:javascript
复制
+ (NSArray *) myGetRequest: (NSURL *) url{

  NSArray *json = [[NSArray alloc] init];

  NSData* data = [NSData dataWithContentsOfURL:
                url];
  NSError *error;

  if (data)
     json = [[NSArray alloc] initWithArray:[NSJSONSerialization
                                           JSONObjectWithData:data
                                           options:kNilOptions
                                           error:&error]];

  if (error)
     NSLog(@"%@", error)

  return json;
}

然后把它放在一个简单的调度块中..。

代码语言:javascript
复制
dispatch_queue_t downloadQueueA = dispatch_queue_create("updater", NULL);
dispatch_async(downloadQueueA, ^{
    // stuff done here will happen in the background
    NSArray * arrayOfData = [self myGetRequest: myURL];
    // could be array... dictionary... whatever, you control this by returning the type of data model you want from the server formatted as JSON data
    NSString * stringValue = arrayOfData[index];

    dispatch_async(dispatch_get_main_queue(), ^{
       // perform checking here and do whatever updating you need to do based on the data

    });
});
票数 1
EN

Stack Overflow用户

发布于 2013-09-13 07:10:55

有许多方法可以检查服务器和检索数据。

以下是我的建议:

  1. 在服务器上创建包含数据的文件(例如Data.txt )
  2. 使用NSURLRequest创建对Data.txt的请求
  3. 使用connectionDidFinishLoading从Data.txt获取数据
  4. 将数据从Data.txt放入Data.txt数组并执行您的逻辑代码<

>G211

如果你的服务器速度很快,你只需要获取一个数字,你可以在主界面中完成,否则使用:

代码语言:javascript
复制
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
      // your request here  
});

按照要求以不同的方式工作。

请记住检查互联网连接和您的服务器是否可用,并使用NSURLRequest委派来管理连接错误

票数 1
EN

Stack Overflow用户

发布于 2013-09-13 06:57:02

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18775257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档