В Xcode 7.0.1 команда "emulate background" fetch вызывает срабатывание performFetchWithCompletionHandler
в два раза.
Является ли это ошибкой отладки Xcode, или это может произойти на устройстве, на котором установлена версия выпуска приложения.
Обновление
Теперь у нас есть Xcode 7.1.1, а еще performFetchWithCompletionHandler
вызывается дважды. Поскольку я не уверен, что это также происходит "в дикой природе", я сохраняю состояние, если мое действие выборки уже запущено.
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(nonnull void (^)(UIBackgroundFetchResult))completionHandler {
if (self.performingFetch) {
return completionHandler(UIBackgroundFetchResultNoData);
}
self.performingFetch = YES;
...
self.performingFetch = NO;
}