यह हो सकता है आप के लिए क्या देख रहे:
let commandsToPrint: NSData = ...
// Create char array with the required size:
var dataToSentToPrinter = [CUnsignedChar](count: commandsToPrint.length, repeatedValue: 0)
// Fill with bytes from NSData object:
commandsToPrint.getBytes(&dataToSentToPrinter, length: sizeofValue(dataToSentToPrinter))
अपडेट: (न ऑब्जेक्टिव-सी कोड में है और न ही में स्विफ्ट) वास्तव में आप सब पर डेटा की प्रतिलिपि बनाने की जरूरत नहीं है। डेटा में पॉइंटर होने के लिए पर्याप्त है। तो अपने कोड (तुलना एक ऐसी ही समस्या के लिए Error ("'()' is not identical to 'UInt8'") writing NSData bytes to NSOutputStream using the write function in Swift ) ऐसा दिखाई दे सकता:
let dataToSentToPrinter = UnsafePointer<CUnsignedChar>(commandsToPrint.bytes)
let commandSize = commandsToPrint.length
var totalAmountWritten = 0
while totalAmountWritten < commandSize {
let remaining = commandSize - totalAmountWritten
let amountWritten = starPort.writePort(dataToSentToPrinter, totalAmountWritten, remaining)
totalAmountWritten += amountWritten
// ...
}
स्रोत
2014-10-10 13:07:08
आपका ऑब्जेक्टिव-सी कोड * आवंटित * एक अहस्ताक्षरित चार बफर, मैं नहीं देख सकते हैं कि यह कैसे * धर्मान्तरित * NSData। शायद आप बेहतर व्याख्या कर सकते हैं कि आपको वास्तव में क्या हासिल करने की आवश्यकता है। –
यह कमांडसाइज से डेटा लेता है जो एनएसडीटा है, कनवर्ट गलत शब्द हो सकता है, लेकिन मुझे बस उस डेटा को एक हस्ताक्षरित चार बफर बनने की आवश्यकता है। –
मैं स्टारियो एसडीके से ओब्जे-सी फ़ंक्शन को कन्वर्ट करने की कोशिश कर रहा हूं जो इस http://pastebin.com/dBCz2bv0 जैसा दिखता है, अगर यह आपको एक ऐसा विचार देता है जो मैं करने की कोशिश कर रहा हूं। –