如何在Swift中使用htonl设置整数字节序?
我正在尝试htonl()
在Swift中使用设置整数字节序,但是编译器没有找到该htonl()
方法。
我一直以此为参考:将NSInteger附加到NSMutableData
这是我的代码:
import Foundationimport 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'
回答:
:马丁R的答案是当前版本的Swift的正确答案:https :
//stackoverflow.com/a/24653879/195691
-
您应该使用CFSwapInt32HostToBig()
CoreFoundation方法,因为htonl
它很可能以C宏的形式实现,因此无法迅速使用。
但是,看起来这在Swift操场上目前无法使用。Playground execution failed: error: error: Couldn't
lookup symbols:
__OSSwapInt32尽管CoreFoundation文档现在在Swift中为其字节交换方法包括了方法签名,但我还是遇到了错误。
有趣的是,它看起来像的至少一部分<arpa/inet.h>
已经被移植到迅速,如方法,如inet_ntoa()
和inet_addr()
可供斯威夫特,但htonl
家庭是没有的。
以上是 如何在Swift中使用htonl设置整数字节序? 的全部内容, 来源链接: utcz.com/qa/414780.html