我正在使用名为 showBluetoothAccessoryPickerWithNameFilter:completion: 的方法,它是外部附件框架的一部分。它只是返回 iPhone 找到的蓝牙设备,您可以选择一个连接到它。

如果我使用以下参数: showBluetoothAccessoryPickerWithNameFilter:nil completion:nil ,它会返回所有设备,但您可以使用 NSPredicate(过滤器参数)指定它应该返回哪些设备。所以我尝试创建这样的谓词:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS MyString"];
[[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:predicate completion:nil]

但是当我运行该应用程序时,会出现类似以下错误:



我想问题出在谓词中的 self 字上,因为在这种情况下 self 表示当前类的实例。我对吗?如果我只想获取名称中包含 MyString 的设备,我应该如何编写谓词?感谢你们。

最佳答案

EAAccessoryManager 文档说谓词是使用附件的名称进行评估的。你的问题是你应该把 MyString 放在引号之间:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS 'MyString'"];

希望能帮助到你。

关于ios - showBluetoothAccessoryPickerWithNameFilter 中的 NSPredicate,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17950995/

10-13 04:07