3

showBluetoothAccessoryPickerWithNameFilter:completion:外部アクセサリ フレームワークの一部であるというメソッドを使用しています。iPhoneが見つけたBluetoothデバイスを返すだけで、接続するデバイスを1つ選択できます。

この引数: を使用する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 に答える