2

XCode でデバッグすると、NSDictionary オブジェクトに 1 つのキーと値のペアが含まれていることがデバッガーから通知されます。デバッグ コンソールがキーと値のペアの説明を出力すると、次のように表示されます。

Printing description of testdictionary:
{
    "Unknown (<1809>)" = <000000ff>;
}

<1809> と <000000ff> の両方を抽出したい。このサイトの他の場所で説明されているように、valueForKey メソッドと objectforKey メソッドの両方を試しました。しかし、ここで何が鍵で何が価値なのかを理解するのは難しいと思います。

たとえば"Unknown (<1809>)"、キーですか?それとも"<1809>"鍵ですか?それとも1809鍵ですか?


返信ありがとうティム。

NSDictionary は、didDiscoverPeripheral: メソッドが呼び出される CoreBluetoothFramework から取得され、広告データを「advertisementData」と呼ばれる NSDictionary に渡します。

このディクショナリには、広告チャネルやデバイス名など、あらゆる種類の情報が含まれています。ただし、「advertisementData」から広告データのみを抽出しようとしています。次のように、corebluetooth「CBAdvertisementDataServiceDataKey」によって提供されるキーを使用しました。

NSData* information;
information = [advertisementData objectForKey:CBAdvertisementDataServiceDataKey];

以前は「情報」を NSDictionary* オブジェクトとして宣言していました。しかし、Applesのドキュメントをさらに読んだ後、それを NSData* に変更しました。結果は同じです。デバッガーは、次のようなキーと値のペアが含まれていることを示しています。

"Unknown (<1809>)" = <000000ff>;

再度、感謝します。

ニック

4

2 に答える 2