Я пытаюсь получить список PFObjects PFUser для отображения в виджете iOS 8 Today.Исключение при извлечении пользовательских данных parse.com в iOS 8 Today Extension
После этого blog post с помощью Parse я включил те же группы приложений и совместное использование ключей в главном приложении и расширении в Xcode.
Я также включен следующий в AppDelegate
моего основного приложения и viewDidLoad
моей Extension Сегодня:
[Parse enableLocalDatastore];
[Parse enableDataSharingWithApplicationGroupIdentifier:@"group.com.me.myapp" containingApplication:@"com.me.myapp"];
[Parse setApplicationId:@"myAppId" clientKey:@"myClientId"];
В widgetPerformUpdateWithCompletionHandler
, я построил и выполнил мой запрос:
- (void) widgetPerformUpdateWithCompletionHandler:(void (^)(NCUpdateResult))completionHandler {
PFQuery *query = [PFQuery queryWithClassName:@"Note"];
[query whereKey:@"User" equalTo:[PFUser currentUser]];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error)
{
// check for difference between current and new data
if([self hasNewData:objects]) {
// fresh data
notes = objects;
[self.tableView reloadData];
[self updatePreferredContentSize];
completionHandler(NCUpdateResultNewData);
} else {
// Data is the same
completionHandler(NCUpdateResultNoData);
}
} else {
// Failed
completionHandler(NCUpdateResultFailed);
}
}];
}
}
Первая загрузка, похоже, работает нормально - я могу получить список PFObjects. Тем не менее, всякий раз, когда расширение перезагружается второй раз, следующее исключение: enableDataSharingWithApplicationGroupIdentifier:containingApplication:' must be called before 'setApplicationId:clientKey''
отправляется по вызову enableDataSharingWithApplicationGroupIdentifier
в viewDidLoad
.
Я могу реплицировать эту перезагрузку, проверив Центр уведомлений на вкладку «Уведомления» и открутив его обратно, что вызовет вызов viewDidLoad снова.
Я дважды проверял, что порядок вызова методов прав, и даже возился с заказом, но я все еще получаю сбой.
Любые идеи? Заранее спасибо!
Убедившись Анализировать инициализирует только один раз в расширение уменьшает аварии. Однако состояние [PFUser currentUser] теперь остается неизменным при входе в основное приложение или выходе из него. –
Не могли бы вы предоставить свой код, где вы используете PFUser? – Sandr
Я получаю доступ к [PFUser currentUser] сразу после шагов инициализации выше, в viewDidLoad моего расширения. –