以后会写一系列Swift 3.0中的小变化的博文,内容短小,因为我遇到这种问题就马上写下来,并不会刻意积累一大堆再一起写出来.如果大家有Swift 3.0使用上的问题欢迎提问.
这个问题发生在之前可以执行的代码中:
if let plays = try? String(contentsOfFile: path,usedEncoding: nil){
//do some stuff...
}
但是该段代码在Swift 3.0中报错了,提示usedEncoding这个参数不可以为nil!但是我们事先并不知道file的编码方式,那么这个参数该如何赋值呢?
答案很简单,你可以选用一种”假象”的编码,然后cocoa会帮你推测出该文件实际的编码方式,注意该参数是inout的类型哦.
所以我们可以这样写:
var encoding:String.Encoding = .ascii
if let plays = try? String(contentsOfFile: path,usedEncoding: &encoding){
//do what anything you want to!
}
你可以在String初始化器成功初始化后检查file实际的编码方式:
print("encoding is \(encoding.description)")
这里返回将是:
encoding is Unicode (UTF-8)
原文地址:https://www.jb51.cc/swift/322683.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。