showBluetoothAccessoryPickerWithNameFilter中的NSPredicate

我使用的方法叫做showBluetoothAccessoryPickerWithNameFilter:completion:这是外部附件框架的一部分。 它只是返回iPhonefind的蓝牙设备,你可以select一个连接到它。

如果我使用这个参数: showBluetoothAccessoryPickerWithNameFilter:nil completion:nil ,它返回所有的设备,但是你可以指定哪些设备应该返回NSPredicate(Filter参数)。 所以我试图创build这样的谓词:

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

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

类不是关键字MyString的关键字编码兼容值。

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

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

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

希望能帮助到你。