2018年5月2日23:13:27更新:这篇之前在iOS文集中,现在移动到Swift中来,swift其实很简单,但是基础的东西必须要掌握牢固,高阶函数什么的也要慢慢习惯去用,后续会更新一些Swift3.0中的语言特性(4.0后续会补上)
一句话,coding如同逆水行舟,不进则退
工作需要,在oc项目中集成了一个swift的界面,现在需要在swift里面增加部分功能,回顾一下以前丢掉的部分swift知识,重新巩固一下.
说一下我认为比较重要的几点,有些是oc没有的,有些是oc进行了一些变化的:
1.元组
tuple是元组,用()定义,可以存放不同类型的数据,可以给数据起别名,然后用点语法取值或者复制(let定义为常量,只能赋值一次)
2.可选类型
一般定义定义不能赋值为null,nil,因为swift强类型,nil也是一种类型,是这个类型就不能被其他类型赋值
在类型后面添加?,可以赋值为nil
取值可以用强制解包
强制解包如果该属性是nil的话直接崩溃,非常危险,所以一般用可选绑定
初学,暂时没有找到更好的方法去解包取值,后续如果有的话会更新
3.函数
函数标准形式
public func 函数名(参数,例如 name:String) -> 返回值 {
}
如果返回值为空可以胜率->返回值
4.类属性
类的创建可以继承NSObject也可以不继承
属性有存储属性和计算属性
name 为存储属性,namecal为计算属性,性质跟java差不多
name as? String 这样转换的类型是一个可选类型
name as! String 这样转换的类型是一个确定类型(有风险)
5._ 的某一种用法
看到区别了吧!当函数(或者方法)的參数具有默认值时,Swift自己主动为该參数提供与參数名一致的默认外部參数名,因此在进行函数调用的时候,要提供默认參数名。能够使用下划线进行忽略默认外部參数名(可是不推荐忽略外部參数名。这主要是为了调用的时候能够方便地知道每一个參数的含义)。
简而言之就是不提供参数名,直接传值!
6.属性监听器
这个用来替代set方法的,比如cell的model赋值
7.闭包
这东西跟block挺像的,但是还是有部分区别,因为block没有回调中再回调,但是闭包可以
首先是正常的定义:
闭包回调回去是在前面的参数传进去的
这个是有返回值的情况
如果想让闭包异步调用,可以在闭包定义前添加@escaping
@escaping callBack:(Int)->String
有一点要注意,我上面的例子,因为闭包是函数的最后一个参数,所以可以省略参数名,其他情况下不可以省略
网友评论