Object-C的內(nèi)存管理經(jīng)歷過2個階段:手動引用計數(shù)內(nèi)存管理MRC和自動引用計數(shù)內(nèi)存引用管理ARC-MRC就是由程序員自己負(fù)責(zé)對象管理生命周期,負(fù)責(zé)對象的創(chuàng)建和銷毀,ARC的程序員不用關(guān)心對象內(nèi)存釋放的問題,編譯器在編譯的時候在合適的代碼位置插入內(nèi)存釋放代碼。
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的益陽網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
Swift在內(nèi)存管理方面吸收了OC的先進(jìn)思想,采用了ARC內(nèi)存管理模式
Swift中的內(nèi)存對象管理是對引用對象類型的管理,即對類所創(chuàng)建的對象采用ARC管理,而對于值類型,如整型,浮點型,布爾型,字符串,元組,集合,枚舉和結(jié)構(gòu)體,是由處理器自動管理,程序員不需要管理它們的內(nèi)存
PS:
以JAVA 和 C# 為代表的內(nèi)存垃圾回收機(jī)制,程序員不用關(guān)心內(nèi)存釋放的問題,這種方式在后臺有一個線程,負(fù)責(zé)檢查已經(jīng)不再使用的對象,將其釋放,由于在后臺有一個線程運行,所以會影響性能。
以C++和C為代表的手動內(nèi)存管理模式,使用起來比較麻煩,經(jīng)常導(dǎo)致內(nèi)存泄露和內(nèi)存過度釋放等問題。
一、引用計數(shù)
每個類創(chuàng)建的對象都有一個內(nèi)部計數(shù)器,這個計數(shù)器根據(jù)對象的引用次數(shù),稱為引用計數(shù)RC,當(dāng)對象被創(chuàng)建的時候,引用計數(shù)為1,每次對象被引用的時候會使其引用數(shù)加1,如果不需要的時候,對象引用斷開(賦值為nil),其引用計數(shù)減1,當(dāng)對象的引用計數(shù)為0的時候,對象的內(nèi)存被釋放。
二、Swift自動引用計數(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)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)