您的位置:首页 > 移动开发 > Swift

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

2016-12-22 11:20 344 查看
        /**

         14.4-weak引用.mp4

         */

        

        /**

         (4)weak引用(弱引用)

         */

        

        class Ref {

            deinit {

                print("Ref deinit!")

            }

            

            func test() ->
Void {

                print("test")

            }

        }

        

        

        /**

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

         */

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

        

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

        

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

        weak
var weakRef = Ref.init()

        

        // 后面会自动置nil

        

        

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

        weak
var weakRef1: Ref? =
Ref.init()

        

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

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

//        weakRef1!.test()

        

        

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

        if
let wr = weakRef1 {

            

            // wr存在,才用它

            wr.test()

        }

        

        

        /**

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

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

         */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐