gpt4 book ai didi

IOS : NSArray of CFUUIDRef

转载 作者:行者123 更新时间:2023-12-01 19:16:21 26 4
gpt4 key购买 nike

我正在尝试使用 CoreBluetooth 的 retrievePeripheral :

- (void)retrievePeripherals:(NSArray *)peripheralUUIDs;

文档说 peripheralUUIDs 应该是 CFUUIDRef 的 NSArray。在 Apple 示例项目 temperatureSensor 中,它被称为:
[centralManager retrievePeripherals:[NSArray arrayWithObject:(id)uuid]];

(uuid 是 CFUUIDRef)
当我在 XCode 4.5.1、IOS6 中使用完全相同的代码时,出现错误:

Cast of C pointer type 'CFUUIDRef' (aka 'const struct __CFUUID *') to Objective-C pointer type 'id' requires a bridged cast



我会说(尽管我不确定)它在 TemperatureSensor 而不是在我的项目中工作的原因是因为 TemperatureSensor 似乎不使用 ARC 而我的项目使用。

Xcode 提出了两种解决问题的方法:添加 __bridge或使用 CFBridgingRelease().我都尝试了它们,但我的印象是该函数不起作用 [Edit] 因为委托(delegate)方法 didRetrievePeripheral: never 被调用 [/Edit] (我的理解是这些操作会将 C 样式的结构更改为目标 - C-objects 从而创建了 NSUUID ,并且该方法不能使用它,但是,我真的不确定)

所以我该怎么做 ?我一直在谷歌上搜索使用 ARC 的retrievePeripherals 示例,但没有成功。

最佳答案

在温度传感器中更改此行并运行
LeDiscovery.m

 -(void) startScanningForUUIDString:(NSString *)uuidString
{
[centralManager scanForPeripheralsWithServices:nil options:0];
}

换字 nil并假设为 0。

如果您想了解更多,请查看 link .

我希望它对你有用。

关于IOS : NSArray of CFUUIDRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025711/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com