तो मैं समझ गए होंगे कि कैसे तेजी में NSData को निकालने के लिए, लेकिन मैं यह स्थापित करने के संबंध के साथ भ्रमित हो रही है:में NSData के साथ कार्य करना तेज
var testBytes : [Byte] = [0x14, 0x00, 0xAB, 0x45, 0x49, 0x1F, 0xEF, 0x15,
0xA8, 0x89, 0x78, 0x0F, 0x09, 0xA9, 0x07, 0xB0,
0x01, 0x20, 0x01, 0x4E, 0x38, 0x32, 0x35, 0x56,
0x20, 0x20, 0x20, 0x00]
var msgData = NSData(bytes: testBytes, length: testBytes.count)
println("\(msgData)")
var length : Int = testBytes.count
var out: NSInteger = 0
let ptr = UnsafePointer<UInt8>(msgData.bytes)
var bytes = UnsafeBufferPointer<UInt8>(start: ptr, count: 28)
तो अगर मैं एक विशिष्ट बाइट मैं उपयोग करना चाहते
let targetAddress = UInt32(bytes[2]) << 16 |
UInt32(bytes[3]) << 8 |
UInt32(bytes[4]) << 0
अब कहते हैं कि मैं की तरह कुछ के साथ एक मान सेट करना चाहता था: की तरह कुछ के साथ इसे पाने के
bytes[11] = UInt8(UInt32(bytes[11]) | 0x0FF)
मैं 012 की कोई त्रुटि मिलती है। मैंने &bytes[11]
का उपयोग करने का भी प्रयास किया जो कि उड़ने लगते नहीं हैं।
मुझे लगता है कि ऐसा इसलिए है क्योंकि सरणी एक असुरक्षित बफर पॉइंटर का उपयोग करती है। क्या कोई आसान कॉल है कि मेरे पास असाइनमेंट सही तरीके से काम करने के लिए कुछ चमकदार है?