0
我的项目涉及设备(iPad)和2个物理信标。当我的设备进入每个信标的立即范围(具有不同的次要值)时,它会以某种方式工作,每个特定信标都会出现一个按钮。然而,这里的问题是,一旦我列出beacon.proximity条件的if语句,按钮就会停止显示。所有帮助表示赞赏!为什么设置CLProximity范围时我的按钮不显示?
-(void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)beacons inRegion:(CLBeaconRegion *)region
{
CLBeacon *beacon = [[CLBeacon alloc] init];
beacon = [beacons lastObject];
self.majorLbl.text = [NSString stringWithFormat:@"%@", beacon.major];
self.minorLbl.text = [NSString stringWithFormat:@"%@", beacon.minor];
if ([self.majorLbl.text isEqual: @"1"])
{
if ([self.minorLbl.text isEqual:@"10"])
{
if (beacon.proximity == CLProximityImmediate)
{
_movieBtn1.hidden = NO;
}
else if ([self.minorLbl.text isEqual:@"3"])
{
if (beacon.proximity == CLProximityImmediate)
{
_movieBtn2.hidden = NO;
}
}
}
}
}
David的建议一如既往,但我建议不要将灯塔的主要和次要值转换为字符串,将这些字符串存储在标签中,然后询问标签的文本内容。标签是视图对象,不应该用于保存状态数据。此外,转换为字符串,然后比较字符串是容易出错的。而是在beacon.major和beacon.minor属性上使用integerValue方法,并进行数字比较。 –