Swift 3.0:String初始化器Encoding不能为nil的解决

news/2024/7/7 14:56:00

以后会写一系列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, us

http://www.niftyadmin.cn/n/581945.html

相关文章

《Leaflet 基础知识点》- 图层循环(小技巧)

点此进入API 使用场景,如关闭全部打开的popup框 // 关闭全部Popup map.eachLayer((layer) > {layer.closePopup(); });

java 接口实现简单并能说明问题的例子

此代码一共包括4个类,在一个包下面: 例子1: 分别是CAR.java,BigCar.java,TestCar.java,CarInterface.java,从别人网页上学习,自己心得。 CAR.java: packagecom.su.callback;publicinterfaceCAR {voidstart(…

iKinds:我是如何一步步重构改造项目从单VC到多VC界面(上)

iKinds是本猫近期准备慢慢把玩的一个项目,项目不是完全从0开始,而是借助于另一个不错的App框架,不过原来的框架使用的都是同一个ViewController模板,现在因为需要扩展为多个不同的VC模板. 原来的框架使用了一些layer的3D动画效果,这对单VC模板工作的很好,现在要改为多VC模板,因…

iKinds:我是如何一步步重构改造项目从单VC到多VC界面(下)

上一篇中我们快速验证了原型的功能可以实现,接下来就是稍微放慢前进的步伐,来收拾一下之前快速开发时写的稍显蹩脚难看的代码了. 为了让大家还有印象,我把最后修改的方法完整显示如下: override func tableView(_ tableView:UITableView, didSelectRowAt indexPath:IndexPath…

自用U盘工具 挺实在的

此文件所有材料来至网络,本人只是出于爱好组织一下。本人虽已对其进行过杀毒,但不保证其无毒,又不放心的请勿使用!!(本人不对由此造成的任何问题负责) 此文件基本以完美者u盘维护系统为架构&…

Vue ElementUI el-table 单元格内容过长被隐藏时显示 tooltip

API el-table 设置属性 show-overflow-tooltip 为 true 代码 <template><div><el-table :data"tableData" style"width: 100%" height"250"><el-table-column fixed prop"date" label"日期" >&l…

用replaceAll去掉身份证中的特殊符号

//去掉特殊符号 如500213719851119037X# 去掉# (保留X)cardNo cardNo.replaceAll("[^\\d|X]", "");最后cardNo 500213719851119037X

TableView的accessoryButtonTappedForRow方法执行的时机

敲代码时遇到了这个问题,别偷懒,写下来备查. 当你在IB中对TableView中的accessory(注意,我说的是cell中的accessory,而不是cell)创建segue时,如果你在VC中同时实现以下4个方法,请问调用的次序是神马!? //1 func tableView(_ tableView: UITableView, accessoryButtonTappedF…