我正在研究Estimote iBeacons,并尝试在Estimote SDK和室内位置SDK的帮助下创建演示应用程序。我正在使用室内位置SDK的演示应用程序,在此演示应用程序中,我在此代码中遇到问题:
UIViewController *nextVC = [ESTIndoorLocationManager locationSetupControllerWithCompletion:^(ESTLocation *location, NSError *error) {
[weakSelf dismissViewControllerAnimated:YES completion:^{
if (location)
{
[[NSUserDefaults standardUserDefaults] setObject:[location toDictionary] forKey:LAST_CREATED_LOCATION_KEY];
ESTIndoorLocationViewController *navigationVC = [[ESTIndoorLocationViewController alloc] initWithLocation:location];
[weakSelf.navigationController pushViewController:navigationVC animated:YES];
}
}];
}];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:nextVC];
[self presentViewController:navController animated:YES completion:nil];
实际上我遇到的问题是我得到的location
对象的值是nil
。我无法解决那里的问题。因为没有location
对象,我无法使用信标进行进一步的室内定位操作。
所以,请为我提出任何合适的解决方案。 感谢。
答案 0 :(得分:0)
如果传递给完成块的location
参数是nil
,则很可能是位置设置出错了。您应该在error
对象中包含详细的错误信息:
if (location) {
// ...
} else {
NSLog(@"error when setting up location: %@", error);
}
答案 1 :(得分:0)
最后,我已经解决了这个问题。 实际上我没有严格按照说明创建室内位置,所以这个方法返回零位置对象。 出现此问题是因为我没有将所有信标放在正确的位置。