歡迎回來(lái),這一節(jié),我們基于之前實(shí)現(xiàn)的MockURLSession和MockURLSessionDataTask來(lái)測(cè)試WeatherDataManager中和網(wǎng)絡(luò)通信相關(guān)的功能...
歡迎回來(lái),這一節(jié),我們基于之前實(shí)現(xiàn)的MockURLSession和MockURLSessionDataTask來(lái)測(cè)試WeatherDataManager中和網(wǎng)絡(luò)通信相關(guān)的功能...
我們實(shí)現(xiàn)weatherDataAt方法的時(shí)候,其實(shí)犯了一個(gè)小錯(cuò)誤。就是,在調(diào)用完URLSession.shared.dataTask之后,沒(méi)有調(diào)用resume()方法開(kāi)始執(zhí)行...
我們把請(qǐng)求DarkSky的代碼封裝起來(lái),以降低這部分代碼在未來(lái)對(duì)我們App的影響。并為這部分的單元測(cè)試,做一些準(zhǔn)備工作。 設(shè)計(jì)DataManager 為了封裝DarkSky的...
這一節(jié),我們根據(jù)之前設(shè)計(jì)的UI,設(shè)計(jì)對(duì)應(yīng)的Model。 DarkSky API 首先,來(lái)了解一個(gè)簡(jiǎn)單好用的天氣API服務(wù):DarkSky[https://darksky.ne...
在這個(gè)系列里,我們通過(guò)從零開(kāi)始開(kāi)發(fā)一個(gè)完整的天氣App - Sky,來(lái)理解并掌握MVVM的編程思想。并且,在這個(gè)過(guò)程中,我們還會(huì)引入RxCocoa、單元測(cè)試,以及UI測(cè)試等內(nèi)...
我們繼續(xù)完成App的后半部分,基于RxDatasource,用reactive的方式處理UITableView。 準(zhǔn)備工作 為了方便演示,基于上個(gè)視頻完成的例子,我們做了一些...
項(xiàng)目準(zhǔn)備工作 我們的App會(huì)在Github上搜索特定名稱的項(xiàng)目,在UITextField里輸入項(xiàng)目名稱,我們就自動(dòng)在Github上搜索項(xiàng)目的名字,并在下面的UITableVi...
接下來(lái),我們繼續(xù)實(shí)現(xiàn)上個(gè)視頻中未完成的例子。首先來(lái)處理UISwitch和UISlider聯(lián)動(dòng)。 對(duì)于UISwitch來(lái)說(shuō): 當(dāng)UISwitch為OFF時(shí),表示用戶不了解Swi...
對(duì)初始項(xiàng)目的改動(dòng) 為了演示RxSwift的用法,我們對(duì)上一個(gè)視頻用到的項(xiàng)目,做了以下改動(dòng): 首先,給Sign Up添加了一個(gè)Segue,點(diǎn)擊后,會(huì)切換到一個(gè)用戶提交各種信息的...
了解了RxSwift[https://github.com/ReactiveX/RxSwift]的基本概念和用法之后,我們通過(guò)一系列視頻向大家介紹如何用RxSwift[htt...
演示 學(xué)習(xí)內(nèi)容 創(chuàng)建自定義形狀 為自定義形狀添加漸變顏色 動(dòng)畫自定義形狀 開(kāi)始 啟動(dòng)一個(gè)新的Xcode項(xiàng)目: 開(kāi)啟Xcode 創(chuàng)建一個(gè)新的Xcode項(xiàng)目 選擇單視圖應(yīng)用程序,...
我們了解了創(chuàng)建Observable以及訂閱事件的方法。我們關(guān)注回收Observable使用的資源問(wèn)題。 在繼續(xù)之前,我們要先補(bǔ)充一點(diǎn)小知識(shí)。對(duì)于一個(gè)Observable來(lái)說(shuō),...
通過(guò)UITextField的rx_text屬性體會(huì)了“事件數(shù)組”的概念和用法之后,我們通過(guò)這正式向大家介紹RxSwift[https://github.com/Reactiv...