gpt4 book ai didi

swift - 在 XCode 8 beta 6 中将 C api 迁移到 Swift 3

转载 作者:行者123 更新时间:2023-11-28 06:36:19 25 4
gpt4 key购买 nike

我正在尝试在 XCode 8 beta 6 中转换 Swift 3 中的 C api。

int payloadSize = 100
char tempBuffer[payloadSize];
memset(tempBuffer, 7, payloadSize);

// Construct the payload.
NSData *payload = [[NSData alloc] initWithBytes:tempBuffer length:payloadSize];

直到 XCode 8 beta 3,它与 Swift 一起工作得很好:

let payloadSize = 100
var tempBuffer:[CChar]?
memset(&tempBuffer, 7, Int(payloadSize))

// Construct the ping packet.
let payload:NSData = NSData(bytes: tempBuffer!, length: Int(payloadSize))

但在最新的 XCode beta 版本中,它会造成崩溃。

最佳答案

问题在线var tempBuffer:[CChar]? .那是一个名为 tempBuffer 的变量的声明, 其类型为 Optional<Array<CChar>> .但是,它没有定义该数组。当您尝试 memset它,它不起作用,因为没有分配内存。

而不是使用 memset ,试试这个:

let payloadSize = 100
let buffer = [UInt8](repeatedValue: 7 count: payloadSize)

let payload = NSData(bytes: buffer, length: buffer.count)

关于swift - 在 XCode 8 beta 6 中将 C api 迁移到 Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39019125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com