美文网首页
Swift基础回顾

Swift基础回顾

作者: 简单coder | 来源:发表于2018-03-06 11:04 被阅读81次

    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
    有一点要注意,我上面的例子,因为闭包是函数的最后一个参数,所以可以省略参数名,其他情况下不可以省略

    解决循环引用闭包问题 第二种推荐使用

    如果将weak 改为unowned的话不需要声明self为可选类型,可以直接使用self,但是比较危险,推荐使用weak self 然后用可选类型使用self

    相关文章

      网友评论

          本文标题:Swift基础回顾

          本文链接:https://www.haomeiwen.com/subject/gygcfftx.html