iOS中的无线配件configuration:EAWiFiUnconfiguredAccessoryBrowser只会检测一次未configuration的配件

我使用EAWiFiUnconfiguredAccessoryBrowser来检测EAWiFiUnconfiguredAccessory 。 开始附件search的代码如下:

- (void)viewDidLoad { [super viewDidLoad]; if (_accessories == nil) { _accessories = [[NSMutableArray alloc] init]; } if (_browser == nil) { _browser = [[EAWiFiUnconfiguredAccessoryBrowser alloc] initWithDelegate:self queue:nil]; _browser.delegate = self; } } 

不幸的是,它只能在第一次加载视图时才能find配件。 如果我回到以前的视图,然后重新加载视图,它不会find它们。

我试过了:

  • 重新创build浏览器附件并重新启动search(不起作用)
  • 停止search并重新启动它(不起作用)

这是我得到的最新代码(与上面的代码一起提到):

 - (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]; } 

看起来附件列表信息被caching在APP内的某处。 如果我重新启动应用程序,它会发现他们,所以我想这是我失踪的东西。

任何帮助?

所以我有同样的问题..你应该使用unconfiguredAccessories数组。 此外,请尝试保持浏览器的实例活着。 如果您发现设备一次,并且您重新实例化浏览器,您不会再find它

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没有提供正确的结果,试试这个。

我也有这个问题。 所以我build立一个名为WAC服务的单身人士,然后在应用程序生命周期中保持这个单身人士的生命。 任何地方你想加载未configuration的权益。 只需从[_browser unconfiguredAccessories]加载它。