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