2011-06-02 19 views
6
डिकोडिंग

तो मैं यहाँ इतने पर पढ़ा है कि मैंiPhone - एन्कोडिंग और एक NSValue

NSValue *myCopy = [[NSValue alloc] initWithBytes:&myLayer objCType:@encode(CGLayerRef)]; 

का उपयोग कर एक NSValue करने के लिए एक CGLayerRef सांकेतिक शब्दों में बदलना कर सकते हैं, लेकिन मैं myCopy से CGLayerRef कैसे पुन: करते हैं?

धन्यवाद

उत्तर

6

यह काम करना चाहिए:

CGLayerRef giveMeBackTheLayer; 
[myCopy getValue:&giveMeBackTheLayer]; 
+0

वाह! यह बहुत exoteric है लेकिन एक आकर्षण की तरह काम करता है। धन्यवाद!!!! – SpaceDog

+0

बस थोड़ा सा विषय ... क्या आप जानते हैं कि मैं बाइट्स की संख्या का पता कैसे लगा सकता हूं, मेरी कॉपी का उपयोग कर रहा है? ... धन्यवाद। – SpaceDog

+0

@ डिजीटल पूरे उदाहरण में बाइट्स की संख्या या 'CGLayerRef' स्टोर करने के लिए आवश्यक बाइट्स की संख्या? यह शायद 'class_getInstanceSize() 'और' sizeof CGLayerRef' का संयोजन है। असली परत 'संरचना' अपारदर्शी है, यद्यपि। –