程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

小編今日給大家帶來RACDisopsable,大家可能有部分人對這個會感覺到很陌生,那么我就用一句話來表達就是他可以幫我們取消訂閱。那么又會有人會對這個產生疑問了,我們什么時候需要用到這個取消訂閱了打個實際的例子來說吧,今天我在餓了嗎App上面選擇了商品,快遞哥把商品運送到我手上,我不在需要這個商品,或者是我訂單有錯誤,我選擇取消訂閱商品,這樣我們就取消了(例子可能舉的不對,還望見諒)說的小編都有一點餓了,先點個餓了么

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

好了前面都是開一個玩笑,下面進入正題,就我們一起來看看代碼實際情況是如何取消訂閱

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

這里小編要提示 一下,在這個流程當中做了一點點小小的改動,請仔細觀看就能發現

原本之前要返回的nil,小編這邊讓它返回我們的RACDisopsable

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

還是熟悉的Block在這邊我們需要來創建這個取消訂閱,不是我們熟悉的alloc init,它幫我們都封裝好了,溫馨提示一下:封裝好的東西都會以名字開頭來命名的,所以我們要調用的是disposableViewBlock,那么有人又會問了,它什么時候會被調用了?下面請看代碼來驗證一下他什么時候被調用

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

代碼很清晰,結果顯然發現是信號發送完畢之后,我們發現它果然是在這里被調用了!估計又有同學要問了,它到底是怎么取消訂閱的呢?

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

原來取消的原因是因為上面的subscriber不在了,又有問題了:如何去證明呢?

小編在這里有一個想法是不斷引用subscriber,如果它一直存在的話,那么是不是取消訂閱呢在嘴上上還是紙上談兵,還是來點實際上代碼

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

看代碼上面subscriber成為了強引用,不過小編在這里問一下大家經過強引用之后的subscriber沒有被銷毀,我們還可以打印出Disposable嗎?看到這里是不是應該動動手指敲一敲代碼來驗證一下呢?小編這邊還是獻上代碼給大家驗證一下,希望給大家一點提示

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

代碼的結果證明subscriber依然是存在,所以沒有調用Disposable也沒有進行打印了到現在從這個實驗我們可以得出subscriber的存在跟取消訂閱之間的關系之外,我們還可以得出一個結論就是【信號發送完數據會認主取消訂閱】但是還是有問題,什么問題呢?這個是自動取消訂閱,假設我要手動取消訂閱該如何?

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

上述代碼所示可以看到subscribeNext 它是有個返回值RACSubscriber頻型,我們接下來拿到這個返回值

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

拿到了之后我們調用這個dispose方法。這樣就是一個手動取消訂閱了,我們來看看,如果它真的取消了,那我們就可以看到它會打印Disposable

程序員制作出價值5億外賣神器卻不能取消訂單,你知道嗎?

到這里相信大家應該看明白了吧,如何手動或者自動的取消訂閱,但是在取消訂閱里面我們到底在做些什么呢?小編這邊要告訴大家,一般情況來說,取消訂閱的block里面【清空資源】取消訂閱的部分就要暫時先到這里了,希望對大家有所幫助,喜歡的朋友也可以點波收藏,點個贊,評論下小編的不足,小編也會加以改正寫出精品文章和大家共享一起學習,一起加油

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

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

相關文章

Computer

鏈接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid2196https://blog.csdn.net/shuangde800/article/details/9732825#include<iostream> #include<cstdio> #include<algorithm> #include<vector> #include<queue> #include<cmath&…

智慧“昆明”在路上 未來充滿精彩

智慧城市是運用物聯網、云計算、大數據、移動互聯網、空間地理信息集成等新一代信息技術&#xff0c;促進城市規劃、建設、管理和服務智慧化的新理念和新模式。近年來&#xff0c;昆明市全面加快智慧城市建設&#xff0c;力爭通過三年的努力&#xff0c;打造區域信息輻射中心的…

《精讀 Mastering ABP Framework》教程發布

精讀《Mastering ABP Framework》學習總結&#xff0c;掌握軟件開發最佳實踐&#xff0c;構建可維護 .NET 解決方案。從 ABP Framework 框架中學習如何構建現代 WEB 應用程序。掌握 ABP Framework 框架ABP Framework 是一個完整的基礎架構&#xff0c;遵循軟件開發最佳實踐&…

C# 委托知識總結

1.什么是委托&#xff0c;為什么要使用委托 我正在埋頭苦寫程序&#xff0c;突然想喝水&#xff0c;但是又不想自己去掉杯水而打斷自己的思路&#xff0c;于是我就想讓女朋友去給我倒水。她去給我倒水&#xff0c;首先我得讓她知道我想讓她干什么&#xff0c;通知她之后我可以繼…

阿里云大學課程學習有獎征文活動現在開始

2019獨角獸企業重金招聘Python工程師標準>>> "學有所獲&#xff0c;分享為美"--阿里云大學課程學習有獎征文活動開始啦~~ 看課程&#xff0c;寫心得&#xff0c;贏千元大獎&#xff0c;還有機會加入阿里云大學技術作者群&#xff01;想試試自己的技術文筆…

配置網絡測試環境的批處理

引言 有次需要測試 50 臺左右的設備&#xff0c;每個都要連上電腦并搭好測試環境。這種事當然用服務器下發配置最方便&#xff0c;但條件不允許哦&#xff0c;只得手工一臺臺設。 寫了個批處理配置腳本&#xff0c;放到 U 盤上&#xff0c;最好再配上 autorun.inf&#xff0c;嘿…

Android 的系統架構

Android 的系統架構和其它操作系統一樣&#xff0c;采用了分層的架構。android 分為四個層&#xff0c;從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和 linux 核心層。 Android 是以 Linux 為核心的手機操作平臺&#xff0c;作為一款開放式的操作系統&#xf…

記一次 .NET 某制造業 MES 系統崩潰分析

一&#xff1a;背景 1.講故事前段時間有位朋友微信找到我&#xff0c;說他的程序偶爾會出現內存溢出崩潰&#xff0c;讓我幫忙看下是怎么回事&#xff0c;咨詢了下程序是 x86 部署&#xff0c;聽到這個詞其實心里已經有了數&#xff0c;不管怎么樣還是用 windbg 分析一下。二&a…

HTTPS協議開通,Apache服務器CSR簽名申請

登錄您的服務器終端 (SSH)。在命令提示符下&#xff0c;鍵入以下命令&#xff1a;openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr將 yourdomain 替換為您要保護的域名。例如&#xff0c;如果您的域名是 coolexample.com&#xff0c;您就…

首次公開!單日600PB的計算力--阿里巴巴EB級大數據平臺的進擊

摘要&#xff1a; 每年的雙11之前&#xff0c;也是MaxCompute各種乾坤大挪移落定的時候&#xff0c;因為雙11就是各種大折騰項目的自然deadline。在今年雙11之前&#xff0c;一路向北遷移和在離線混部項目&#xff0c;將杭州集群除螞蟻外整體遷移到張北&#xff0c;涉及了絕大部…

軟件測試金字塔

軟件測試金字塔 在敏捷方法中&#xff0c;持續集成是其基石&#xff0c;持續集成的核心是自動化測試。下面這篇關于測試金字塔的文章&#xff0c;來自大師Martin Fowler。 測試金字塔的概念來自Mike Cohn&#xff0c;在他的書Succeeding With Agile中有詳細描述&#xff1a;測試…

使用pm2守護你的.NET Core應用程序

簡介PM2是常用的node進程管理工具&#xff0c;它可以提供node.js應用管理&#xff0c;如自動重載、性能監控、負載均衡等。同類工具有Supervisor、Forever等。pm2是一個進程管理工具,可以用它來管理你的node進程&#xff0c;并查看node進程的狀態&#xff0c;當然也支持性能監控…

C-指針02 2017/11/24

/* 復習 1.指針類型 int *指針類型 指針指向的變量類型指針指向哪個變量2.基本數據類型 4種指針類型 存放的地址 和系統有關系 4個字節數組類型結構體 枚舉 聯合3.指針加法減法 p 和數組搭配使用4.兩個運算符 *取值(解引用) &取地址5. *(pi) p[i] …

程序員搞笑段子

轉載于:https://www.cnblogs.com/Zhusi/p/10083474.html

學習之旅——工作記錄日志2017.7.09

1.例子&#xff1a;在dev_lala上開發完畢后&#xff0c;切換到dev分支&#xff0c;在此分支上pull最新的代碼來保證dev上的代碼是最新的。在dev分支上git branch -b haha一個新的分支haha&#xff0c; 用git log dev_lala查看提交記錄&#xff0c;將我自己的幾個記錄加到haha分…

Git常用命令與基本操作

Git操作指令系統配置基本命令獲取/刪除Git倉庫更新記錄撤銷操作遠程倉庫的使用分支系統系統配置 git config 為系統自帶的配置指令&#xff0c;它可以控制GIT的行為和外觀 配置用戶信息 git config --global user.name "John Doe" git config --global user.email …

CA周記 - 在 Azure ML 上用 .NET 跑機器學習

.NET 是一個跨平臺&#xff0c;全場景應用的開源技術。你有在用 .NET 做機器學習/深度學習的應用嗎&#xff1f;如果從框架角度&#xff0c;ML.NET / Tensorflow.NET / 不斷在進步的 TorchSharp 通過幾年的發展已經開始穩定&#xff0c;但如果在一些大型項目上&#xff0c;特別…

iOS10 優化APP首次安裝網絡權限提示方案

我剛經歷了一場末日&#xff08;停電&#xff09;&#xff0c;特別是在你想寫文檔的時候。。。 言歸正傳&#xff0c;今天的問題是解決iOS10系統下首次按鈕APP彈出的網絡權限提示所帶來了問題以及優化。 起因 查了相關文章知道由于大陸工信部出臺的新規指出&#xff0c;應用在未…

su命令

從一個用戶切換到另一個用戶&#xff1a;su - ceshi(ceshi是用戶名) 查看當前用戶&#xff1a;whoami 在不切換用戶的情況執行另一個用戶的命令&#xff1a;例&#xff1a;su - -c "touch /tmp/111.txt" admin 若用戶沒有加目錄需要添加家目錄&#xff0c;并更改所有…

C語言基礎知識【數據類型】

C 數據類型1.在 C 語言中&#xff0c;數據類型指的是用于聲明不同類型的變量或函數的一個廣泛的系統。變量的類型決定了變量存儲占用的空間&#xff0c;以及如何解釋存儲的位模式。2.C 中的類型可分為以下幾種&#xff1a;序號 類型與描述1 基本類型&#xff1a;它們是算…