2012-09-08 6 views
7

可能性の重複:
NSDataに構造体をパックする方法は?

Send and receive NSData via GameKit

Iは整数変数と2フロートポインタ(アレイ)からなる構造体を有しています。どのように私はこの構造体ib NSDataをパックし、後でそれを解凍することができますか?あなたはNSDataのPF dataWithBytesメソッドを使用して構造をパックすることができます

+1

使用[ 'dataWithBytes'](http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation /Classes/NSData_Class/Reference/Reference.html#//apple_ref/occ/clm/NSData/dataWithBytes:length :) '(const void *)&struct_data'と' sizeof struct_data'を指定してください – oldrinb

答えて

10

struct aStruct { 
/* Implementation */ 
}; 

//Struct variable 
aStruct exampleStruct; 

// pack the struct into an NSData Object 
NSData *myData = [NSData dataWithBytes:&exampleStruct length:sizeof(exampleStruct)]; 

// get back the the struct from the object 
[myData getBytes:&exampleStruct length:sizeof(exampleStruct)]; 
+0

ありがとう!また、float * xとfloat * yが構造体にあり、それらを初期化し、数値を追加し、後でそれらをunpackされた構造体から取得する方法を示していますか?私が実現したことはわかりませんし、別の数字が配列にあります。 – Mathemage

+2

@ValentinKhrulkovこれらの構造体がシリアル化され、実行中のアプリケーションのコンテキスト外で永続化されなければならないデータを表す場合、あなたの中にポインタを持っているように。 –

+0

@Carl Veazey nono、内部アプリ、ちょうどそれを行う方法? – Mathemage

関連する問題