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]加载它。