Swift內(nèi)存管理概述

    Object-C的內(nèi)存管理經(jīng)歷過2個(gè)階段:手動引用計(jì)數(shù)內(nèi)存管理MRC和自動引用計(jì)數(shù)內(nèi)存引用管理ARC-MRC就是由程序員自己負(fù)責(zé)對象管理生命周期,負(fù)責(zé)對象的創(chuàng)建和銷毀,ARC的程序員不用關(guān)心對象內(nèi)存釋放的問題,編譯器在編譯的時(shí)候在合適的代碼位置插入內(nèi)存釋放代碼。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的益陽網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

    Swift在內(nèi)存管理方面吸收了OC的先進(jìn)思想,采用了ARC內(nèi)存管理模式

    Swift中的內(nèi)存對象管理是對引用對象類型的管理,即對類所創(chuàng)建的對象采用ARC管理,而對于值類型,如整型,浮點(diǎn)型,布爾型,字符串,元組,集合,枚舉和結(jié)構(gòu)體,是由處理器自動管理,程序員不需要管理它們的內(nèi)存

    PS:

        以JAVA 和 C# 為代表的內(nèi)存垃圾回收機(jī)制,程序員不用關(guān)心內(nèi)存釋放的問題,這種方式在后臺有一個(gè)線程,負(fù)責(zé)檢查已經(jīng)不再使用的對象,將其釋放,由于在后臺有一個(gè)線程運(yùn)行,所以會影響性能。

        以C++和C為代表的手動內(nèi)存管理模式,使用起來比較麻煩,經(jīng)常導(dǎo)致內(nèi)存泄露和內(nèi)存過度釋放等問題。

一、引用計(jì)數(shù)

        每個(gè)類創(chuàng)建的對象都有一個(gè)內(nèi)部計(jì)數(shù)器,這個(gè)計(jì)數(shù)器根據(jù)對象的引用次數(shù),稱為引用計(jì)數(shù)RC,當(dāng)對象被創(chuàng)建的時(shí)候,引用計(jì)數(shù)為1,每次對象被引用的時(shí)候會使其引用數(shù)加1,如果不需要的時(shí)候,對象引用斷開(賦值為nil),其引用計(jì)數(shù)減1,當(dāng)對象的引用計(jì)數(shù)為0的時(shí)候,對象的內(nèi)存被釋放。

二、Swift自動引用計(jì)數(shù)示例

        

            class Employee {
                    var no:Int
                    var name:String
                    var job:String
                    var salary:Double
                    
                    init(no:Int,name:String,job:String,salary:Double){
                            self.no = no
                            self.name = name
                            self.job = job
                            self.salary = salary
}
                     deinit{
                            println("員工已經(jīng)被析構(gòu)了")
}
}
            var ref1:Employee?
           ref1 = Employee(no:10,name:"hey","IT",1000.0)

分享題目:Swift內(nèi)存管理概述
當(dāng)前URL:http://muchs.cn/article22/ipjecc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、企業(yè)建站建站公司、網(wǎng)站制作、網(wǎng)站策劃服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管