0

在我的应用程序中,我正在从我的服务器获取一些数据。我需要刷新我的数据。我正在使用异步请求在后台执行此操作。

我在做什么(我不确定它是否正确和/或建议这样做)是:

-(void)loadData
{
    //setting url request
    [NSURLConnection sendAsynchronousRequest:urlRequest
                                       queue:[[NSOperationQueue alloc] init]
                           completionHandler:^(NSURLResponse *resp, NSData *data, NSError *err)
    {
        //handling data
        myTimer = [NSTimer scheduledTimerWithTimeInterval:interval 
                                                   target:self 
                                                 selector:@selector(loadData) 
                                                 userInfo:nil repeats:NO];
    }];

我想要做的是等待我的数据被下载和处理,然后等待一段时间再刷新它们。但是这段代码并没有像我预期的那样工作。

我的错误在哪里?

谢谢你的帮助。

4

1 回答 1

2

我是作为 SACompositeOperations 的作者被召唤到这里的。

尽管来自 SACompositeOperations 的每个引用字符串都是正确的(哈哈),但 SACompositeOperations 与这个问题完全无关。即使是这样 - 它看起来就像在后台加载数据这样简单的任务中使用重型火炮。

@zbMax,我看到你对 iOS 开发完全陌生,所以我建议你以下几点:

不要-[NSURLConnection asynchronousRequest:...]用于在后台获取数据 - 仔细阅读AFNetworking 库的文档并立即开始使用它而不是 Apple 的默认 NSURLConnection 方法。AFNetworking是一个顶级库,整个 iOS 开发世界都使用它来处理网络问题。

此外,甚至不要考虑以NSTimer您所描述的方式使用 - 实际上根本不要使用它。请仔细阅读如何使用 AFNetworking 执行异步请求。

于 2013-07-23T16:34:42.997 回答