swift学习

* 闭包

    * 闭包作为属性


    ```swift

    // 声明闭包类型

    typealias callback = (_ actionType : String, _ message : String) -> Void

    // 作为属性

    public var nativeCallback : callback!

    // 全局调用

    self.nativeCallback("aaa", "test")

    // 事件回调

    self.webManager.nativeCallback = {(actionType, message) in

        print(actionType,message)

    }

    ```


    * 闭包作为参数


        * @nonescaping(非逃离闭包,闭包在方法执行完成会从被程序移除)


        ```swift

    func getParams(_ id: String, handler: (Any) -> Void) {

    }

        ```



        * @escaping(逃离闭包,闭包被保留以便稍后执行并且函数的主体被执行,返回编译器。当执行结束时,传递的闭包的范围存在并且在内存中存在,直到闭包被执行)


            ```swift

            func getParams(_ id: String, handler: @escaping (Any) -> Void) {


            }

            ```

        * @autoclosure(自动闭包,当一个闭包没有参数的时候,就可以使用自动闭包了,更偏向描述一个表达式)


            ```

            func getParams(handler: () -> Void) {

                print("abc")

            }

            getParams(handle: print("abc"))

            ```

* mutaing

    * 用来修饰枚举和结构体中的方法,使其结构体或枚举中的方法可以修改结构体或者枚举中的变量

* lazy

    * 声明属性时,属性必须是var

* 类方法

    * static 关键字声明

    * class 用来覆盖父类的方法

* 下标

    ```

    subscript(index: Int) -> Int {

    get {

        // return an appropriate subscript value here

    }

    set(newValue) {

        // perform a suitable setting action here

    }

}

    ```

* convenience

    * https://swifter.tips/init-keywords/

* enum

    * swift调用oc的enum


    ```

      oc的enum  typedef NS_ENUM(NSUInteger, WYADrawerTransitionDirection) {

        WYADrawerTransitionFromLeft = 0, // 左侧滑出

        WYADrawerTransitionFromRight    // 右侧滑出

    };

    ```

    ```

    1.使用

    example:

    if direction.rawValue == 0 {


    }else {


    }

    ```   

    * oc调用swift的enum


    ```

    swift的enum  @objc public enum jumpType: Int {

            case push = 0

            case present = 1

        }

    ```

* notication

    * 自定义通知名称


    ```

    extension Notification.Name {

        static let closeWin = NSNotification.Name("closeWin")

    }

    ```

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift2.0 1.defer译为延缓、推迟之意类似栈 注意作用域,其次是调用顺序——即一个作用域结束(注意),...
    zeqinjie阅读 8,707评论 0 50
  • 一直没有时间好好看一下swift,最近复习了一遍语法,这里记录swift学习过程中遇到的一些问题和要点,和Obje...
    bomo阅读 7,158评论 0 25
  • 一:playground 作用:学习代码、实验代码、测试代码 官方的学习资源是以playgroud形式提供的,建立...
    Taureau_2d81阅读 2,962评论 0 1
  • 渲染: 1 当前屏幕渲染:在GPU的当前屏幕缓冲区中进行的渲染 2 离屏渲染:在GPU当前屏幕缓冲区外另建缓冲区渲...
    adrian920阅读 3,073评论 0 0
  • 创建对象 OC:alloc initWith Swift:(XXX:) 调用方法 OC:[uicolor redc...
    child_cool阅读 6,702评论 0 12

友情链接更多精彩内容