转换成NSString后用range(of:"ll")来实现,返回的是一个NSrange,
例如:
var sadn = "hello"
(sadn as NSString).range(of: "ll") //得到的结果:{2,2}
//如果看不懂上面的NSrange,可以使用以下方法
(sadn as NSString).range(of: "ll").location //得到的结果:2
//补充,可以使用contains(str:String )来判断字符串是否包含这个元素,
(sadn as NSString ).contains("ll") //得到的结果:True
因为error3里只包含了 errorCode , errorMessage ,不包含nil
如果要验证error3是不是可选型l,应该是error3 = nil
你的问题没说明白啊,不懂你说的啥。
error3是一个可选型,你如果需要解包并且当你确认它是有值的,那么你可以直接使用
error3!.errorMessage 这里的!表示强制解包
当然如果你不确定该变量是否有值,那么你可以使用?来尝试解包
error3?.errorCode 这里的?表示尝试解包,如果error3是nil那么系统也不会报错,而是直接返回nil
而使用 ! 则会出错,因为此时error3是nil
另外,使用 ? 这个符号,一定需要在其后面调用方法,否则系统也会报错。这时使用了可选型的一个特性
optional-chaining