EDIT: я получаю следующие коды ошибок:
Ошибка при добавлении аксессуара Операция не может быть завершена. (Ошибка HMErrorDomain 2.)
И:
Ошибка при добавлении аксессуара. Не удалось начать сопряжение с аксессуаром [ имя = ххххх, заданное имя = ххххх, uuid = ххххх-ххххх-ххххх-ххххх-ххххх, идентификатор = ххххх, идентификатор приложения-конфигурации = (нулевой), домашний = (нулевой) , мост = (ноль)]
Оба с номером 2.
Чего я не понимаю, так это почему в приложении HMCatalog это работает. Что не так с моим кодом? Он отлично работает на симуляторе аксессуаров, но не на реальном аксессуаре (настоящий аксессуар добавляется только через приложение HMCatalog, но не через мое пользовательское приложение).
Реальное поведение:
- добавить аксессуар из моего приложения (работает с первого раза)
- сбросьте аксессуар, а затем снова добавьте его (не работает и выдает ошибку сопряжения на скриншоте ниже). Однако когда он выдает эти ошибки, если я использую пример Apple HMCatalog, он работает.
И иногда:
Ожидаемые результаты:
- добавляет аксессуар из моего приложения без ошибки сопряжения
Это мой добавить код аксессуара:
[self.home addAccessory:self.accessory completionHandler:^(NSError *error) {
NSLog(@"in adding for accessory %@", self.accessory.name);
if (error) {
NSLog(@"Error adding accessory %@ %li", error.localizedDescription, (long)error.code);
UIAlertController *alertController = [UIAlertController
alertControllerWithTitle:@"Pairing error"
message:error.localizedDescription
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction
actionWithTitle:NSLocalizedString(@"OK", @"OK action")
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action)
{
NSLog(@"OK action");
}];
[alertController addAction:okAction];
[self presentViewController:alertController animated:YES completion:nil];
}
else{
// TODO: Tweak this
NSLog(@"Added to home");
[self dismiss:nil];
/**
[homeSweetHome assignAccessory:accessory toRoom:nil completionHandler:^(NSError *error) {
if (error) {
NSLog(@"Failed adding accessory %@ to room %@", accessory.name, room.name);
}
}];**/
}
}];
self.accessory
. В моем коде я беру ссылку из массиваdiscoveredAccessories
вHMAccessoryBrowser
. ВОЗМОЖНО, мы должны использовать вспомогательный объект, который передается в качестве параметра методуdidFindAccessory
delegate. - person Tushar Koul   schedule 21.10.2015