У меня есть функция, которая запускается каждые 5 секунд, чтобы проверять наличие новых сообщений, если запускается новое сообщение. Я обновляю значение значка элемента панели вкладок, используя приведенный ниже код.Задержка при обновлении Tab Bar Значок элемента Значения
NSString *chkUrl = @"http://domain.com/script.php";
NSURL *url = [[[NSURL alloc] initWithString:chkUrl] autorelease];
NSError *error = nil;
NSStringEncoding encoding;
NSString *returnHTML = [[NSString alloc] initWithContentsOfURL:url usedEncoding:&encoding error:&error];
int totalNewMessages = [[returnHTML stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] intValue];
AppDelegate *mainDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSLog(@"badge before:%@",[[mainDelegate.tabBarController.viewControllers objectAtIndex:2] tabBarItem].badgeValue);
[[mainDelegate.tabBarController.viewControllers objectAtIndex:2] tabBarItem].badgeValue = [NSString stringWithFormat:@"%d",totalNewMessages];
NSLog(@"badge after:%@",[[mainDelegate.tabBarController.viewControllers objectAtIndex:2] tabBarItem].badgeValue);
Проблема заключается в том, что значение значка не обновляется немедленно! Возможно, в третьем четвертом звонке он будет обновлен! Ничего плохого я делаю! Или это ошибка в iOS!
Как работа, я повторял вышеприведенную строку 10 раз при каждом обновлении, но опять же она не обновляется, поэтому проблема заключается в задержке обновления значения значка, это не вопрос повторного запуска строки обновления!
Кстати, эта проблема имеет место и в Xcode 4.6 Simulator & моего iPhone 5 с прошивкой 6.1
Почему бы вам не установить контрольную точку для проверки значения totalNewMessages, чтобы узнать, что передается на ваш значок? Возможно, у вас есть асинхронные звонки? Как вы получаете стоимость на первом месте? – Alladinian
@Alladinian. Я печатаю значение значка до и после его обновления, оно показывает правильное значение в NSLog, но оно задерживается на несколько секунд в значке элемента табуляции. – DeZigny
Можете ли вы опубликовать часть кода, где вы задаете значение 'totalNewMessages'? – Alladinian