let dataStr = data.base64EncodedStringWithOptions(options: Encoding64CharacterLineLength)
Run Code Online (Sandbox Code Playgroud)
不使用"使用未解析的标识符编译'Encoding64CharacterLineLength'进行编译"当我只是将参数更改为零时
let dataStr = data.base64EncodedStringWithOptions(options: 0)
Run Code Online (Sandbox Code Playgroud)
它甚至给出了奇怪的错误:"无法转换'String'类型的表达式!键入'String!'"我找到了一种使用NSData初始化NSString的方法(但是,我仍然无法区分String和NSString),但我真的好奇为什么这两行代码不起作用.
sla*_*zyk 31
除非明确给出外部名称,否则Swift中方法的第一个参数不是命名参数.所以你应该这样做:data.base64EncodedStringWithOptions(x)
没有options:
部分.
如果您实际查看参数类型,NSDataBase64EncodingOptions
您会注意到它是一个符合RawOptionSet
选项常量的静态变量的结构.因此,要使用它们,您应该:NSDataBase64EncodingOptions.Encoding64CharacterLineLength
所述NSDataBase64EncodingOptions
结构(或RawOptionSet
一般的)也是从整数常量(如不可兑换0
).但NilLiteralConvertible
如果您不想要任何可以通过的选项,它确实符合要求nil
.
把它放在一起:
let dataStr = data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
Run Code Online (Sandbox Code Playgroud)
要么
let dataStr = data.base64EncodedStringWithOptions(nil)
Run Code Online (Sandbox Code Playgroud)
Swift3.0
let dataStr = data.base64EncodedString(options: [])
Run Code Online (Sandbox Code Playgroud)
zap*_*aph 19
对于Swift 2.x,使用数组作为选项:
let dataStr = data.base64EncodedStringWithOptions([.Encoding64CharacterLineLength])
let dataStr = data.base64EncodedStringWithOptions([])
Run Code Online (Sandbox Code Playgroud)
对于swift 3.0使用这个,
var dataStr = data.base64EncodedString(options: .lineLength64Characters)
Run Code Online (Sandbox Code Playgroud)