3

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

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

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

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

类与键 MyString 的键值编码不兼容。

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

4

1 回答 1

6

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

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

希望能帮助到你。

于 2013-07-30T15:53:32.910 回答