-1

私は iPhone アプリケーションに取り組んでおり、タイプのメソッドから値を抽出しました_bridge const void *。しかし、この値を type に変換する必要がありますNSString

クラシック キャストでは効果がないことがわかりました。

 valueNSString = (NSString *) valueConstVoid
4

2 に答える 2

1

おそらく、最初に NSData にブリッジしてから、適切なコンストラクターを使用して NSString に変換することができます。

ここにあるのは void へのポインタです。void へのポインターは、物理オブジェクト (またはバイト シーケンス) 表現が開始されるメモリ内の場所です。それが何であるかはわかりませんが、それが問題です。キャストは、特定の型ポインターの単なる割り当てです。つまり、型付きポインターを使用すると、特定のプロパティがどこにあり、実際の物理表現がどこで終了するかを知ることができます。これを試してみましょう。value割り当て後の行でデバッガーを停止po valueし、デバッガーを入力します。プリントアウトとして表示されるものを教えてください。

于 2013-03-05T15:25:29.027 に答える
0

(__bridge const void*)型ではなくキャストです。したがって、値はおそらく typeconst void *です。へのポインタであることが確実な場合はNSString、次のようにキャストできます。

const void *value;
NSString *stringValue = (__bridge NSString *)value;
于 2013-03-05T15:31:33.133 に答える