對iOS 項目“天氣”詳細步驟

天氣步驟

一.在里面申請key , 分析視圖,有三個視圖

界面 + 業務邏輯層 + 模型層 (View + Controller + Model)

1.頭部視圖(5個控件 cityLabel、hiloLabel? temperatureLabel、iconView、conditionsLabel(天氣描述)

2.每小時的天氣情況

3.每天的天氣情況


二、創建最表面的tableView ,通過三問一答,有些比如說行數,內容確定,暫且用#warning TODO


三、創建頭部視圖—>創建Views組——》創建headview? —-創建4個Label+imageview—-》在m 文件中重寫父類的initWithFrame方法(如果是init ,必須調用父類的frame)—->定義一些常量 static—>設置frame、字體...? ? —》label封裝 (或者創建分類、labelTool創建工具類 )


四、分類(封裝)? 創建Utility 組—>選擇Object-C? ,File? Type 選擇分類, Class—》UILabel? 給定label 的frame? ,返回創建好的UIlabel? 用類方法 ?? ? 1 創建citilabel和最高和最低溫度label? 添加另外的三個? label? ? ? —》設置在頭部視圖


五、發送請求 JSON? 格式

1.NSURLSession

a. 單例對象

b. 任務的類型 NSURLSessionDataTask

獲取服務器的json 格式 (解析/模型類) 在主視圖viewdidload

創建NSURLRequest對象

獲取單例對象NSURLSession

創建數據任務對象,發送請求

創建模型類 (頭部視圖、每小時天氣、每天天氣)但是有共同點,所有只創建一個模型類

手動執行任務


六.創建模型類model組—>Nsobject,只負責數據解析和提供接口

json? “”, 沒有“”就是NSNumber ,用NS如果就是NSString? 創建各個屬性

每小時/每天的用數組接收? 在TRWeatherModel,時在model 中提供一個方法這樣跳轉? 類方法——》類方法+? return一個實例方法

七、到主視圖中TRMainViewController? ? 解析的地方? ,用for? in 解析,聲明可變數組,進行存儲? ——》成功返回解析的數據(三目運算符)—》驗證斷點108? 110

code是200

在控制臺輸入斷點后進一步,再po? self .hourlyArray .count

completionHandler(想再子線程還是主線程中)--在子線程中———》填空

-行數? ? —設置cell一些屬性—》多高? 斷點驗證


八、圖片緩存? 在controller 中

在主視圖控制器,在三問一答? 一答那里,如果不是第一行時,圖片的緩存—設置每個cell 的圖片? 出現卡的解決方案 幾種方法在V3? ? 一般都是用第三方庫,進行圖片緩存

圖片加載 出現的問題

1.卡

2.第一次加載沒有圖片顯示

3.每次調用cellForIndexPath, 都會重復下載圖片

4.問題四:內存增大

圖片緩存的邏輯的替代方案 第三方庫 (SDWebImage)


另外對MVC的總結

1.感覺主要在Controllerview 層做包括數據(JSON)的解析,數據的處理,圖片的緩存,圖片的URL

2.在model 層只是在JSON格式做分出和做解析數據的接口

3.View層做了視圖的顯示,同時提供已改工具類Unity ,進行封裝視圖

對天氣的總結,當然還可以提供定位服務,以及給視圖添加新的icon 圖像。

如感興趣可以聯系875666040,進行解答

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容