美文网首页
swift学习

swift学习

作者: 卿本陌 | 来源:发表于2019-01-31 16:54 被阅读0次

    * 闭包

        * 闭包作为属性

        ```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")

        }

        ```

    相关文章

      网友评论

          本文标题:swift学习

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