如何在Swift中使用htonl设置整数字节序?

我正在尝试htonl()在Swift中使用设置整数字节序,但是编译器没有找到该htonl()方法。

我一直以此为参考:将NSInteger附加到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'

回答:

:马丁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

回到顶部