我在 plist 中维护了信标信息,当我初始化 CLBeaconRegion 时,我得到了该区域的不同主要和次要值。在执行 NSLog 之后,我开始知道在 NSString 中保存的 Major 和 Minor 值给了我在 plist 中的正确值,当我将值转换为 CLBeaconMajorValue 或 CLBeaconMinorValue 或 NSInteger 时,值是不同的。我已经更改了 plist 中的 NSString 和 Number 数据类型,但没有运气。为什么会这样?你能帮我纠正这个问题吗?
NSUInteger major = (NSUInteger) [beaconInfo objectForKey:@"major"];
NSUInteger minor = (NSUInteger)[beaconInfo objectForKey:@"minor"];
NSLog(@"major : %ld, minor : %ld", major, minor);
NSString *majorString = [beaconInfo objectForKey:@"major"];
NSString *minorString = [beaconInfo objectForKey:@"minor"];
NSLog(@"major : %@, minor : %@", majorString, minorString);
NSLog(@"major : %hu, minor : %hu", (CLBeaconMajorValue)majorString, (CLBeaconMinorValue) minorString);
CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID: [[NSUUID alloc] initWithUUIDString: [beaconInfo objectForKey:@"uuid"]] major: (CLBeaconMajorValue) [beaconInfo objectForKey:@"major"] minor: (CLBeaconMinorValue) [beaconInfo objectForKey:@"minor"] identifier:@"com.test"];
NSLog(@"%@", region);
列表是
生成的 NSLog 是
主要:-5764607523034234861,次要:-5764607523034234861
主要:1,次要:1
主要:19,次要:19
CLBeaconRegion(标识符:'com.test',uuid:03672CE6-9272-48EA-BA54-0BF679217980,主要:19,次要:19)