Game Centerを使用してネットワーク経由でオブジェクトを送信するために、オブジェクトに追加する必要があるNSValue( KVC を介して取得した)多数のオブジェクトがあります。明らかに、より多くの KVC ( ) のために、バックを変換する必要もあります。valueForKeyNSDataNSValueNSDatasetValue:forKey:
それぞれの正確なタイプがわからないので、およびNSValueによって提供されるインターフェースの使用に限定されます。ポインター型ではないことに注意してください。NSValueNSDataNSValue
[NSData dataWithValue:value]似たようなものがないことに驚いてい[value dataWithEncoding:]ます。しかし、おそらく私は盲目で、明らかな選択肢が見えていません。getValue:を使用して値をバッファーにコピーすることを考えましたが、それを使用してすべての可能な型と比較するvoid*以外に、バッファーの長さを決定するにはどうすればよいでしょうか?objCType
これについてどうすればよいですか?
注:
NSKeyedArchiver非常に効率が悪いため、問題外です。4 バイトのフロートは 142 バイトにアーカイブされNSData、8 バイトCGPointは にアーカイブされると 260 バイトを使用しNSDataます。送信されるデータの量を最小限に抑えることは、私がやっていることにとって非常に重要です。