2012-09-08 24 views
7

Olası Yinelenen:
Send and receive NSData via GameKitNSData'da yapı nasıl paketlenir?

int değişken ve 2 yüzer işaretçiler (diziler) oluşur yapı vardır. Bu struct ib NSData paketini nasıl paketleyebilirim ve sonra paketten çıkartabilirim?

+1

kullanın [ 'dataWithBytes'] (http://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation /Classes/NSData_Class/Reference/Reference.html#//apple_ref/occ/clm/NSData/dataWithBytes:length :) ve kaynağı '(const void *) & struct_data' ve' sizeof struct_data' – oldrinb

cevap

10

Sen dataWithBytes kullanarak yapıyı paketi olabilir yöntem 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

Teşekkürler! Şunu da gösterebilir miyim? X ve float * y şamandıralar, onları nasıl başlatabilir, sayı ekleyebilir ve daha sonra bunları paketlenmemiş yapıdan nasıl alabilirler? Coz benim realizasyon çalışmaz ve dizilerde başka bir sayı almıyorum, – Mathemage

+2

@ValentinKhrulkov içine koydum, bu yapıların çalışan uygulama bağlamı dışında serileştirilmesi ve ısrar edilmesi gereken verileri temsil etmesi durumunda o zaman işe yaramaz İçinde işaretçiler olması için iyi. –

+0

@Carl Veazey nono, iç uygulama, sadece nasıl yapmalı? – Mathemage

İlgili konular