Objective c 在iOS 13中更改了KCBADVDATA制造商数据格式?
在iOS 13上使用我的应用程序时,制造商数据的格式已更改 在iOS 12中访问KCBADVDATA ManufacturerData时,我得到以下格式: 但在iOS 13中,我得到了以下格式: {length=4,bytes=0x13376400} 有人知道为什么会发生变化吗 如何将“1337”部分检索为字符串 这是我访问和打印数据的方式:Objective c 在iOS 13中更改了KCBADVDATA制造商数据格式?,objective-c,core-bluetooth,ios13,Objective C,Core Bluetooth,Ios13,在iOS 13上使用我的应用程序时,制造商数据的格式已更改 在iOS 12中访问KCBADVDATA ManufacturerData时,我得到以下格式: 但在iOS 13中,我得到了以下格式: {length=4,bytes=0x13376400} 有人知道为什么会发生变化吗 如何将“1337”部分检索为字符串 这是我访问和打印数据的方式: NSData *manufacturerData = [advertisementData objectForKey:kCBAdvDataMan
NSData *manufacturerData = [advertisementData objectForKey:kCBAdvDataManufacturerData];
NSString *manufacturerString = [NSString stringWithFormat:@"%@", manufacturerData];
NSString *companyIdentifier = [manufacturerString substringWithRange:NSMakeRange(1, 4)];
NSLog(@"%@", companyIdentifier);
版画:冷
我尝试了manufacturerData.bytes,但它给了我EXC_BAD_访问错误 自iOS 13以来,
kCBAdvDataManufacturerData
NSData
的描述已更改。
要能够提取和解析广告数据
,您不应再基于说明
。
以下是在iOS 13和旧iOS版本上运行的Swift解决方案版本:
根据上面的代码,您可以提取manufacturerDataNSData
let publicData = Data(bytes: manufacturerData.bytes, count: Int(manufacturerData.length))
let publicDataAsHexString = publicData.dataToHexString // this result is same what ever the iOS version.
//// Data extension
extension Data {
var dataToHexString: String {
return reduce("") {$0 + String(format: "%02x", $1)}
}
}
格式没有改变,只是在
打印数据的实例时得到的输出。显示如何访问数据。见评论说明
已更改。在prod中使用它从来都不是一个好的解决方案。可能的重复我没有使用描述。我做错了什么?NSString*manufacturerString=[nsstringstringwithformat:@“%@”,manufacturerData]代码>正在调用说明
。克利里。