14.4 Swift中weak引用 访问可选类型的时候,用隐式解包

来源:互联网 发布:java游戏高级编程 编辑:程序博客网 时间:2024/05/22 05:21

        /**

         14.4-weak引用.mp4

         */

        

        /**

         4weak引用(弱引用)

         */

        

        class Ref {

            deinit {

                print("Ref deinit!")

            }

            

            func test() ->Void {

                print("test")

            }

        }

        

        

        /**

         跟弱引用对应的就是强引用。

         */

        var strongRef =Ref.init()  // 引用计数retainCount 1

        

        var strongRef1 = strongRef  // 引用计数retainCount 2

        

        // 这就是弱引用,weak引用是非常安全的引用方式

        weakvar weakRef = Ref.init()

        

        // 后面会自动置nil

        

        

        // 弱引用,是一个可选类型。

        weakvar weakRef1: Ref? =Ref.init()

        

        // 不建议这样子直接解包

//        fatal error: unexpectedly found nil while unwrapping an Optional value

//        weakRef1!.test()

        

        

        // 访问可选类型的时候用隐式解包

        iflet wr = weakRef1 {

            

            // wr存在,才用它

            wr.test()

        }

        

        

        /**

         我可以告诉大家的是,在Swift中我们平时用不着 weak关键字。

         但是在某些场合下我们会使用它,会在接下来的课程讲解。

         */


0 0
原创粉丝点击