NSArrayorなどの目的の c オブジェクトをオブジェクトに変換し、それを使用してディスクに書き込むことができるようにしたいと考えてUIImageいNSDataます。最初に に変換し、NSValue次に に変換する予定でしたNSData。 この質問は答えの一部を提供しましたが、彼らは で作業しNSNumberていたので、実際に に戻す必要はありませんでしたNSValue。
に依存するこのような他の質問を見てきましNSKeyedArchiverたが、発生する膨大なサイズのインフレのために、これから離れたいと思います.
NSDataしたがって、最初の質問から、 からオブジェクトをエンコードするための現時点での私のコードNSValueは次のとおりです。
+(NSData*) dataWithValue:(NSValue*)value {
NSUInteger size;
const char* encoding = [value objCType];
NSGetSizeAndAlignment(encoding, &size, NULL);
void* ptr = malloc(size);
[value getValue:ptr];
NSData* data = [NSData dataWithBytes:ptr length:size];
free(ptr);
return data;
}
私の質問は、この方法でエンコードされたオブジェクトをデコードし、元のファイルを元に戻すにはどうすればよいですNSDataか?objCTypeNSValue
私はこれらの線に沿って何かを使用していると思います
[NSValue valueWithBytes:[data bytes] objCType:typeHere];
型情報を取得するにはどうすればよいですか?