我有挑选视图,显示像(5,10,20)这样的小事。如果用户选择任何时间,他将在选定的时间后获得更新。我的应用程序将照常运行,但5分钟后会显示一些消息。
我将如何实施这个概念?我应该做什么编码?
根据我的猜测,我应该选择线程吗?
答案 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 stackoverflow或docs的更多信息。
答案 2 :(得分:0)
您可以创建NSTimer并等待所选的持续时间。一旦超时完成
scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:
消息被激发到选择器。谷歌上有很多示例代码。