Block的循環引用詳解

1.首先我們創建了一個網絡請求工具類

?

?

然后storyboard里面去創建了一個導航控制器 并且把它設置為初始控制器 ? 然后拖入一個bar button ?--show--到自帶的控制器

?

?這個時候運行代碼的結果是

?

?

?

x

?

顯然這個時候沒有造成循環引用 ??

為什么呢??????????????????

?

//沒有self的時候是沒有循環引用的

?

//tools是一個局部的變量 執行完了就會被釋放掉了

?

//這個時候出現了self沒有出現循環引用? 控制器也被釋放了

?

//block是右邊的finished? finished 對這個self.view進行強引用? finished執行完畢了然后就釋放掉了 ? 會解除對self的強引用? 并不會對self產生循環引用

?

?

例子2:

如果這個時候我們對控制器里面的那個networktools 中的tools對象來一個strong的強引用而不是copy的話

?

?這個時候的結果還是和之前是一樣的為什么???

控制器對self的解除引用是在finished執行完畢的時候

對這個tools的強引用沒有關系 ?

?

?

例子3:

block是一組準備好的代碼 ? 在需要的時候執行 ?可以當作參數傳遞 ?

在異步的方法中能夠執行block 的話就直接執行 ? 如果當前方法不能直接執行block 通常需要定義一個屬性 ? 記錄block 在需要的時候執行

上圖了:

?

這個時候期待的循環引用就出現了

?

?

轉載于:https://www.cnblogs.com/Ninesday/p/5644954.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/254961.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/254961.shtml
英文地址,請注明出處:http://en.pswp.cn/news/254961.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HALCON示例程序measure_pump.hdev螺紋孔位置與尺寸測量

HALCON示例程序measure_pump.hdev螺紋孔位置與尺寸測量 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_update_var (‘off’) dev_update_off () read_image (Image, ‘pumpe’) get_image_size (Image, Width, Height) dev_close_window () dev_open_…

計算機視覺和圖形學中的攝像機內參數矩陣詳解

在計算機視覺和圖形學中都有“攝像機內參數矩陣”這個概念,其含義大致相同,但在實際使用過程中,這兩個矩陣卻相差甚遠。在增強現實中,為了使計算機繪制的虛擬物體和真實環境圖像對其,需要令虛擬攝像機的內參數和真實攝…

c#和html方法互調

具體見連接:https://www.cnblogs.com/zeroLove/p/3912460.html轉載于:https://www.cnblogs.com/gaara-zhang/p/8746403.html

數據庫基礎雜記

sql,Structured Query Language結構化查詢語言。SQL 是一門 ANSI(美國國家標準局) 的標準計算機語言,用來訪問和操作數據庫系統。SQL 語句用于取回和更新數據庫中的數據。SQL 可與數據庫程序協同工作,比如 MS Access、DB2、Informix、MS SQL Server、Ora…

很有用的X264和ffmpeg的設置

很有用的X264和FFMPEG的設置 http://www.360doc.com/content/11/0209/16/3705984_91612512.shtml 點擊打開鏈接

HALCON示例程序measure_ring.hdev齒輪齒寬度測量

HALCON示例程序measure_ring.hdev齒輪齒寬度測量 示例程序源碼(加注釋) 關于顯示類函數解釋 read_image (Image, ‘rings_and_nuts’) dev_close_window () dev_open_window_fit_image (Image, 0, 0, 640, 640, WindowHandle) set_display_font (Windo…

基于RBGD的mapping

最近學習RGBD的SLAM,收集了兩個RGBD的mapping的開源工具包 1.RGBDSlam2 a.安裝方法: #準備工作空間 source /opt/ros/indigo/setup.bash mkdir -p ~/rgbdslam_catkin_ws/src cd ~/rgbdslam_catkin_ws/src catkin_init_workspace cd ~/rgbdslam_catkin_ws…

【瓜分5000元獎金】Wannafly挑戰賽13

鏈接:https://www.nowcoder.com/acm/contest/80/A來源:牛客網 zzy的小號 時間限制:C/C 1秒,其他語言2秒空間限制:C/C 262144K,其他語言524288K64bit IO Format: %lld題目描述 學家zzy根據字體的特點&#…

X264參數設定詳細解釋

x264 core:65 r1074M b6bb3d4 Syntax: x264 [options] -o outfile infile [widthxheight] 語法(命令行寫法):x264 [參數] -o 輸出文件名 輸入文件名 [寬x高] 范例: x264 --crf 26 --ref 3 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --weightb -…

20145217《網絡對抗》 惡意代碼分析

20145217《網絡對抗》 免殺原理與實踐 知識點學習總結 進行惡意代碼分析之前必須具備以下知識:編程、匯編/反匯編、網絡基本知識、PE文件結構以及一些常用行為分析軟件。 一、在一個已經感染了惡意代碼的機器上如何找到病毒文件? 找到惡意代碼才能對其分…

HALCON示例程序measure_screw.hdev螺紋尺寸測量

HALCON示例程序measure_screw.hdev螺紋尺寸測量 示例程序源碼(加注釋) 關于顯示類函數解釋 dev_update_off () read_image (Image, ‘screw_thread’) get_image_pointer1 (Image, Pointer, Type, Width, Height) dev_close_window () dev_open_window…

邊工作邊刷題:70天一遍leetcode: day 97-2

Design Hit Counter 要點:因為是second granularity,所以可以用以秒為單位的circular buffer方法。這題簡單在只需要count過去300秒的,增加難度可以count過去秒,分鐘,小時。 2個時間點都有可能更新超時的統計&#xff…

cvRemap 對圖像進行普通幾何變換

cvRemap 對圖像進行普通幾何變換 函數 cvRemap 利用下面指定的矩陣變換輸入圖像:   dst(x,y)<-src(mapx(x,y),mapy(x,y))   與其它幾何變換類似&#xff0c;可以使用一些插值方法&#xff08;由用戶指定&#xff0c;同cvResize&#xff09;來計算非整數坐標的像素值 vo…

disconf(二):服務端使用總結

1、服務端原理客戶端啟動&#xff0c;把配置文件&#xff0c;配置項存到倉庫&#xff0c;等到服務端啟動&#xff0c;從服務端拉取數據&#xff1b;服務端更新&#xff0c;則通過zk通知客戶端&#xff0c;客戶端知道更新后&#xff0c;會從服務端拉取最新的配置文件&#xff0c…

B2C和B2B之間有多大差距

從產品應用的角度&#xff0c;我們團隊經歷了企圖將B2C系統套用到B2B業務流程上的階段&#xff0c;對于自營業務這還勉強可以實施&#xff0c;但對于外部用戶的實施難度就太大了&#xff0c;用戶體驗也不好。這個過程中&#xff0c;我只關注了技術范疇的迭代速度、而忽略了用戶…

h.264 視頻解碼的一點小經驗(ffmpeg)

最近做視頻文件264解碼&#xff0c;由于對這個領域不是很熟悉&#xff0c;感覺困難重重。不過經過不懈的努力&#xff0c;已經取得一些進展&#xff0c;心里感覺特別慶幸。 剛開始做這個的時候&#xff0c;由于不熟悉&#xff0c;就在網上搜尋資料&#xff0c;網絡上的資料雖然…

HALCON示例程序novelty_detection_dyn_threshold.hdev紗網缺陷檢測

HALCON示例程序novelty_detection_dyn_threshold.hdev紗網缺陷檢測 示例程序源碼&#xff08;加注釋&#xff09; 關于顯示類函數解釋 dev_update_window (‘off’) read_image (Image, ‘plastic_mesh/plastic_mesh_01’) dev_close_window () get_image_size (Image, Width…

配置云服務器 FTP 服務

自己配置的環境: OS: 阿里云 CentOS 6.5 >>Begin: 1. 登錄到阿里云服務器(如何登錄阿里云服務器), 在root權限下, 通過如下命令安裝 vsftp [rootVM_250_202_tlinux ~]# yum install vsftpd 2. 在啟動vsftpd服務之前&#xff0c;需要登錄云服務器修改配置文件&#xff0c;…

【躍遷之路】【428天】程序員高效學習方法論探索系列(實驗階段185-2018.04.09)...

(躍遷之路)專欄 實驗說明 從2017.10.6起&#xff0c;開啟這個系列&#xff0c;目標只有一個&#xff1a;探索新的學習方法&#xff0c;實現躍遷式成長實驗期2年&#xff08;2017.10.06 - 2019.10.06&#xff09;我將以自己為實驗對象。我將開源我的學習方法&#xff0c;方法不斷…

opencv中的一些陷阱 坑死我了~~~~(_)~~~~

1.這幾天被opencv給坑的夠慘&#xff0c;好好的程序&#xff0c;先是因為imread&#xff08;&#xff09;不能讀文件&#xff0c;整了很久沒整出來&#xff0c;然后改了下path路徑&#xff0c;沒想到后面徹底奔潰了&#xff0c;&#xff0c;&#xff0c;&#xff0c;前后大概2天…