मैं स्विफ्ट में htonl()
का उपयोग कर पूर्णांक अंतराल सेट करने की कोशिश कर रहा हूं लेकिन संकलक htonl()
विधि नहीं ढूंढ रहा है।स्विफ्ट में एचटीटीएल का उपयोग करके मैं पूर्णांक अंतहीनता कैसे सेट करूं?
मैं अपने संदर्भ के रूप में उपयोग करते हुए किया गया है: Append NSInteger to NSMutableData
यहाँ मेरी कोड है:
import Foundation
import CFNetwork
import CoreFoundation
var data = NSMutableData()
var number : UInt32 = 12
var convertedNumber : UInt32 = htonl(number)
data.appendBytes(&convertedNumber, length: 4)
मैं सिर्फ एक खेल के मैदान में इस बराबर चल रही है। त्रुटि है:
Use of unresolved identifier 'htonl'
बहुत बढ़िया, धन्यवाद! ऐसा लगता है कि यह काम करेगा। मैं एक ब्रिजिंग हेडर/देशी-सी में htonl() को कार्यान्वित करना समाप्त कर दिया लेकिन मैं इस पर स्विच करूंगा। – Michael
दाएं। htonl/htons आदि एक मैक्रो है और इसलिए स्विफ्ट में आयात नहीं किया गया है (varargs सी funcs जैसे ioctl/fcntl एक और आम बात गायब है)। यदि आप अंतहीनता को जानते हैं तो इसे पुन: कार्यान्वित करना आसान है: func ntohs (मान: CUnsignedShort) -> CUnsignedShort { // hm, htons ओएसएक्स में एक func नहीं है और मैक्रो मैप नहीं किया गया है वापसी (मूल्य << 8) + (मान >> 8); } htons = ntohs // एक ही चीज़, swap बाइट्स :-) – hnh
असल में 'CFSwapInt32HostToBig' और दोस्तों को स्विफ्ट में उपलब्ध है जो Xcode 6.1.1 के साथ आता है :) –