我正在使用名为showBluetoothAccessoryPickerWithNameFilter:completion:
的方法,它是外部附件框架的一部分。它只返回iPhone找到的蓝牙设备,你可以选择一个连接到它。
如果我使用这个参数:showBluetoothAccessoryPickerWithNameFilter:nil completion:nil
,它将返回所有设备,但您可以使用NSPredicate(Filter参数)指定它应返回的设备。所以我尝试创建这样的谓词:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS MyString"];
[[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:predicate completion:nil]
但是当我运行应用程序时,会出现类似错误:
类不是密钥值编码兼容的密钥MyString。
我认为问题与谓词中的self
单词有关,因为在这种情况下self
表示当前类的实例。我对吗?如果我想只获取名称中包含 MyString 的设备,我该如何编写谓词?谢谢你们。
答案 0 :(得分:5)
EAAccessoryManager文档说明使用附件的名称评估谓词。你的问题是你应该把MyString放在引号之间:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS 'MyString'"];
希望它有所帮助。