如何在iPhone应用程序中实现“检查更新”的概念

时间:2011-07-21 08:36:53

标签: iphone

我有挑选视图,显示像(5,10,20)这样的小事。如果用户选择任何时间,他将在选定的时间后获得更新。我的应用程序将照常运行,但5分钟后会显示一些消息。

我将如何实施这个概念?我应该做什么编码?

根据我的猜测,我应该选择线程吗?

3 个答案:

答案 0 :(得分:1)

你可以拥有一个NSTimer,当你从挑选者视图中选择一个时间时就会​​开始。

timer = [NSTimer scheduledTimerWithTimeInterval:pickerValueInSeconds target:self selector:@selector(updateMethod) userInfo:nil repeats:NO];

您选择不重复,然后在您的updateMethod中提出请求:

-(void)updateMethod
{
    NSString *url = @"url...";
    NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:someURL]
                                        cachePolicy:NSURLRequestUseProtocolCachePolicy
                                          timeoutInterval:20.0]; // with some timeout interval.

    // create the connection with the request
    // and start loading the data
    NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self];

    if(theConnection) 
    {
        // Create the NSMutableData to hold the received data.
        // receivedData is an instance variable declared elsewhere.
        systemsData = [[NSMutableData data] retain];
    } 
    else 
    {
        // Inform the user that the connection failed.
        NSLog(@"NSURLConnection failed!");
    }

}

现在在你的

-(void)connectionDidFinishLoading:(NSURLConnection *)connection

-(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 

你处理数据或错误,然后启动一个新的计时器..

请注意,您还需要实现

-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    [systemsData setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [systemsData appendData:data];
}

答案 1 :(得分:0)

您可以使用NSTimer。

您可以阅读有关NSTimer here on stackoverflowdocs的更多信息。

答案 2 :(得分:0)

您可以创建NSTimer并等待所选的持续时间。一旦超时完成

scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:

消息被激发到选择器。谷歌上有很多示例代码。