我使用的方法称为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的设备,我应该如何编写谓词?谢谢你们。
发布于 2013-07-30 15:53:32
EAAccessoryManager文档指出,谓词是使用附件的名称计算的。您的问题是,您应该将MyString放在引号之间:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS 'MyString'"];
希望能帮上忙。
https://stackoverflow.com/questions/17950995
复制相似问题