gpt4 book ai didi

ios - Swift 中的 base64EncodedStringWithOptions 因编译错误而失败

转载 作者:IT王子 更新时间:2023-10-29 05:13:42 32 4
gpt4 key购买 nike

let dataStr = data.base64EncodedStringWithOptions(options: Encoding64CharacterLineLength)

不使用“使用未解析的标识符‘Encoding64CharacterLineLength’”进行编译当我用

将参数更改为零时
let dataStr = data.base64EncodedStringWithOptions(options: 0)

它给出了更奇怪的错误:“无法转换类型为‘String!’的表达式键入 'String!'” 我找到了一种使用 NSData 初始化 NSString 的方法(但是,我仍然无法区分 String 和 NSString),但我真的很好奇为什么这两行代码不起作用。

最佳答案

除非明确给出外部名称,否则 Swift 中方法的第一个参数不是命名参数。因此你应该这样做: data.base64EncodedStringWithOptions(x) 没有 options: 部分。

如果您实际查看参数类型 NSDataBase64EncodingOptions,您会注意到它是一个符合 RawOptionSet 且选项常量为静态变量的结构。因此,要使用它们,您应该这样做:NSDataBase64EncodingOptions.Encoding64CharacterLineLength

NSDataBase64EncodingOptions 结构(或一般的 RawOptionSet)也不能从整数文字(如 0)转换。但它确实符合 NilLiteralConvertible,因此如果您不需要任何选项,您可以传递 nil

综合:

let dataStr = data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)

let dataStr = data.base64EncodedStringWithOptions(nil)

Swift3.0

let dataStr = data.base64EncodedString(options: [])

关于ios - Swift 中的 base64EncodedStringWithOptions 因编译错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24769074/

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