如果有新内容,应用程序每5分钟使用一种方法检查服务器。 如果有服务器返回" true",否则" false"
问题是如何调用该方法直到服务器返回" true" ?有新内容的那一刻将是一个休息时间,让时间来执行一些代码,然后再次调用该方法来搜索服务器上的新内容。
我试试:
dispatch_queue_t q = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
dispatch_async(q, ^{
self.isNotifOnServer = [NSString stringWithFormat:@"%@", [self searchNewNotifications]];
while (![self.isNotifOnServer isEqualToString:@"true"])
{
self.isNotifOnServer = [NSString stringWithFormat:@"%@", [self searchNewNotifications]];
if ([self.isNotifOnServer isEqualToString:@"true"])
{
break;
// Another method to get the notification
}
}
dispatch_async(dispatch_get_main_queue(), ^{
NSLog(@"The first search for notifications return %@", self.isNotifOnServer);
});
});
你能给我一些建议吗?谢谢
答案 0 :(得分:0)
使用递归为此,定义一个将代码放入其中的方法,并创建一个执行选择器!
-(void)myMethod{
self.isNotifOnServer = [NSString stringWithFormat:@"%@", [self searchNewNotifications]];
[self performSelector:@selector(myMethod) withObject:nil afterDelay:10.0]; }
它会每10秒调用一次方法!
您只需要从viewDidLoad方法调用一次!
我希望这有帮助!