2012-09-08 25 views
7

可能重复:
Send and receive NSData via GameKit如何在NSData中包装结构?

我有结构它由int变量和2浮子指针(阵列)。我怎样才能打包这个结构ib NSData,然后解压缩它?

+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

可以使用dataWithBytes包装结构的方法,粉煤的NSData:

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在struct中如何初始化它们,添加数字,然后从解压缩的结构中获取它们?因为我的认识不起作用,我得到另一个数组的数字,而不是我把它放入 – Mathemage

+2

@ValentinKhrulkov如果这些结构代表需要序列化并持续运行的应用程序的上下文之外的数据,那么我认为它不会工作以及你有他们的指针。 –

+0

@Carl Veazey nono,里面的应用程序,只是如何做到这一点? – Mathemage