Я использую метод showBluetoothAccessoryPickerWithNameFilter:completion:
, который является частью внешней вспомогательной инфраструктуры. Он просто возвращает устройства Bluetooth, которые нашел iPhone, и вы можете выбрать одно для подключения к нему.
Если я использую эти аргументы: showBluetoothAccessoryPickerWithNameFilter:nil completion:nil
, он возвращает все устройства, но вы можете указать, какие устройства он должен возвращать, с помощью NSPredicate (аргумент фильтра). Итак, я попытался создать такой предикат:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"self CONTAINS MyString"];
[[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:predicate completion:nil]
Но когда я запускаю приложение, возникает ошибка, например:
class не соответствует кодированию значения ключа для ключа MyString.
Я полагаю, что проблема связана со словом self
в предикате, потому что в этом случае self
означает экземпляр текущего класса. Я прав? Как мне написать предикат, если я хочу получить только те устройства, которые содержат MyString в своем имени? Спасибо вам, ребята.