2015-08-04 2 views
9

Я использую EAWiFiUnconfiguredAccessoryBrowser обнаружить EAWiFiUnconfiguredAccessory. Код, чтобы начать поиск аксессуаров, это следующее:беспроводной аксессуар конфигурация прошивкой: EAWiFiUnconfiguredAccessoryBrowser обнаружит ненастроенных аксессуары только один раз

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    if (_accessories == nil) { 
     _accessories = [[NSMutableArray alloc] init]; 
    } 

    if (_browser == nil) { 
     _browser = [[EAWiFiUnconfiguredAccessoryBrowser alloc] initWithDelegate:self queue:nil]; 
     _browser.delegate = self; 
    } 
} 

К сожалению, это найти аксессуары только в первый раз вид нагрузки. Если я вернусь к предыдущему виду, а затем перезагрузите представление, оно не найдет их.

Я пробовал:

  • воссоздание аксессуара браузер и перезапуск поиска (не работает)
  • остановка поиска и перезапуск (не работает)

Это последнее кода (см. вместе с приведенным выше кодом):

- (void) viewWillAppear:(BOOL)animated{ 
    NSLog(@"view will appear"); 

    if (_accessories != nil) { 
     [_accessories removeAllObjects]; 
    } 

    [self.tableView reloadData]; 
    [self initializeBrowswerAndStartSearch]; 
} 

- (void) initializeBrowswerAndStartSearch{ 
    if (_browser != nil) { 
     [_browser stopSearchingForUnconfiguredAccessories]; 
    } 

    [_browser startSearchingForUnconfiguredAccessoriesMatchingPredicate:nil]; 
} 

- (void) viewWillDisappear:(BOOL)animated{ 
    [_browser stopSearchingForUnconfiguredAccessories]; 
} 

I t кажется, что информация о списке аксессуаров кэширована где-то в APP. Если я перезапущу APP, он найдет их, поэтому я думаю, что есть что-то, что мне не хватает.

Любая помощь?

+0

Yep .. Я закончил тем, что оставил эту часть проекта несколько недель и сосредоточился на чем-то другом, надеясь, что кто-то получит ответ. Пожалуйста, держите меня в курсе, если вам удастся выяснить, почему .. – mm24

+0

Официальный пример Apple имеет ту же проблему. https://developer.apple.com/library/ios/samplecode/HomeKitCatalog/Introduction/Intro.html#//apple_ref/doc/uid/TP40015048 – Adinp

+0

Эх э ... Apple .. они получили миллиарды, и все же это происходит, Надеюсь, они скоро это разрешат. – mm24

ответ

4

поэтому у меня такая же проблема .. вы должны использовать массив unconfiguredAccessories. Также попробуйте сохранить экземпляр браузера в живых. Если вы обнаружите устройство один раз, и вы повторно создаете экземпляр браузера, вы не найдете его снова

0

У меня также есть эта проблема. Поэтому я создаю синглтон, называемый WAC-сервисом, тогда вы можете сохранить этот синглтон в течение жизненного цикла приложения. В любом месте, где вы хотите загрузить неконфигурированные перезаписи. Просто загрузите его из [_browser unconfiguredAccessories].

1

У EAWiFiUnconfiguredAccessoryBrowser есть проблемы и не дает надежного результата в некоторых случаях использования. я думаю, вы должны попробовать это

- (void) viewWillAppear:(BOOL)animated{ 
     NSLog(@"view will appear"); 
     if (_accessories != nil) { 
      [_accessories removeAllObjects]; 
     } 

     [self.tableView reloadData]; 
     [self initializeBrowswerAndStartSearch]; 
    } 

ниже метод делает браузер объекта ноль, и восстанавливает его, в этом случае объект браузера всегда будет возвращать вас в курсе (т.е., правильные) значения. он отлично работал для меня.

-(void) initializeBrowswerAndStartSearch  
{ 
     // Make EAWiFiUnconfiguredAccessoryBrowser object nil and reinitiate ,start searching again 
     _browser = nil; 
     _browser = [[EAWiFiUnconfiguredAccessoryBrowser alloc]  initWithDelegate:self queue:nil]; 
     [_browser startSearchingForUnconfiguredAccessoriesMatchingPredicate:nil]; 
} 

в любое время вы чувствуете EAWiFiUnconfiguredAccessoryBrowser не обеспечивает должного результата, попробуйте это.

Смежные вопросы