我正在使用名为 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/