中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

iOS調(diào)試Block引用對象無法被釋放的小技巧分享-創(chuàng)新互聯(lián)

Block技術(shù)在iOS開發(fā)中非常流行也很方便,但是稍微疏忽就可能會產(chǎn)生引用無法被釋放的問題,從而造成內(nèi)存泄漏。那如何知道哪個Block持有了對象并造成內(nèi)存泄漏呢?

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供納溪企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為納溪眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

一個解決的方法是在程序運行時通過Xcode的Debug Memory Graph 來查看當(dāng)前進(jìn)程中所有生命周期內(nèi)的對象。這樣可以在調(diào)試時通過這個功能發(fā)現(xiàn)一些本來應(yīng)該被釋放但是卻沒有被釋放的對象。從而確定哪些對象有內(nèi)存泄漏的嫌疑。

iOS調(diào)試Block引用對象無法被釋放的小技巧分享

當(dāng)點擊某個對象時,右邊可以看出這個對象的內(nèi)存分配情況以及被引用的情況,從而可以進(jìn)一步跟蹤確認(rèn)出對象是被誰持有和引用而沒有被正常的釋放。

iOS調(diào)試Block引用對象無法被釋放的小技巧分享

在上圖中黑色的線部分就是對象被強引用的序列圖。

回到主題,你可以上面的圖形中看出對象ViewController2是被一個**__NSMallocBlock__** 所持有了,但是你只能看到這個Block對象的內(nèi)存地址(右上角)而已。要想看這個Block所對應(yīng)的實現(xiàn)代碼時你只需要在lldb控制臺輸入如下信息:

(lldb) dis -s *(void**)(0x600002f51110+16)
MyLoadTest`__27-[ViewController2 loadView]_block_invoke:
  0x10c79c080 <+0>: pushq %rbp
  0x10c79c081 <+1>: movq  %rsp, %rbp
  0x10c79c084 <+4>: subq  $0x40, %rsp
  0x10c79c088 <+8>: movq  %rdi, -0x8(%rbp)
  0x10c79c08c <+12>: movq  %rdi, %rax
  0x10c79c08f <+15>: movq  $0x0, -0x10(%rbp)
  0x10c79c097 <+23>: leaq  -0x10(%rbp), %rcx
  0x10c79c09b <+27>: movq  %rdi, -0x20(%rbp)

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站m.rwnh.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

本文題目:iOS調(diào)試Block引用對象無法被釋放的小技巧分享-創(chuàng)新互聯(lián)
分享地址:http://m.rwnh.cn/article14/doehge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作標(biāo)簽優(yōu)化、網(wǎng)站制作企業(yè)建站、定制開發(fā)品牌網(wǎng)站建設(shè)

廣告

聲明:本網(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)

成都app開發(fā)公司
庆城县| 金昌市| 南溪县| 承德市| 莱西市| 乌兰浩特市| 游戏| 大庆市| 平安县| 山阴县| 荆州市| 营口市| 南澳县| 浠水县| 平泉县| 吉水县| 刚察县| 巴彦淖尔市| 利辛县| 衡南县| 泾源县| 垣曲县| 西丰县| 句容市| 东港市| 射洪县| 湘西| 肇庆市| 尼勒克县| 河源市| 长子县| 班玛县| 金秀| 兰西县| 镇安县| 即墨市| 嘉祥县| 铅山县| 凤山县| 太白县| 宜黄县|