我每隔45秒就要拨打一次我的网络服务。实际上我想要做的是,如果用户播放一首歌,用户就开始在我的应用程序中播放一些音乐,每45秒应用程序应该同样向网络服务发送“用户播放歌曲”。我对iOS线程一无所知。所以有人能告诉我我该怎么做?我需要做线程还是有其他方法可以做到这一点?
三江源
答案 0 :(得分:2)
以下是一些可以帮助您的代码。
在NSTimer
设置viewDidLoad
,每隔45秒运行一次,执行您的网络服务电话:
[NSTimer scheduledTimerWithTimeInterval:45.0
target:self
selector:@selector(callService)
userInfo:nil
repeats:YES];
然后实现计时器中使用的选择器,在后台运行一些代码,如你所愿:
-(void)callService
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//Code in this part is run on a background thread, call your service here
});
}
答案 1 :(得分:1)
您需要在后台线程上执行此操作。所以它不会影响用户界面。用户可以执行任何其他操作。为此,您可能需要使用NSTimer
和performSelectorInBackground: withObject:
。使用NSTimer
您可以重复调用方法。从那个调用背景中的Web服务方法。 GCD
也是一个更好的选择。