2012-09-08 14 views
7

Powiel możliwe:
Send and receive NSData via GameKitJak spakować strukturę w NSData?

Mam struct, który składa się z 2 int zmienne i wskaźniki float (tablic). W jaki sposób mogę spakować tę strukturę NSData struct ib, a następnie ją rozpakować?

+1

Użyj [ 'dataWithBytes'] (http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation /Classes/NSData_Class/Reference/Reference.html#//apple_ref/occ/clm/NSData/dataWithBytes:length :) i podaj '(const void *) & struct_data' oraz' sizeof struct_data' – oldrinb

Odpowiedz

10

Można zapakować strukturę używając dataWithBytes metoda pf 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

Dzięki! Czy możesz również pokazać, czy istnieją float * x i float * y w strukturze, jak je zainicjować, dodać numery, a później pobrać je z rozpakowanej struktury? Coz moja realizacja nie działa i dostaję kolejne liczby w tablicach, a nie że wstawiam do – Mathemage

+2

@ValentinKhrulkov, jeśli te struktury reprezentują dane, które muszą być serializowane i utrzymywane poza kontekstem działającej aplikacji, to nie sądzę, że to zadziała dobrze, żebyś miał w sobie wskazówki. –

+0

@Carl Veazey nono, wewnątrz aplikacji, jak to zrobić? – Mathemage