日常技術小結(jié)(1):0615

(一) manager寫法總結(jié)

按照數(shù)據(jù)的流向編號

1.繼承自網(wǎng)絡訪問工具類

2.分頁屬性

【依據(jù)具體情況添加此項】
總頁數(shù),當前頁碼索引,總條數(shù)

3.數(shù)據(jù)存儲容器(一般是結(jié)構(gòu)體數(shù)組)

關于結(jié)構(gòu)體,是一個獨立文件,根據(jù)后臺返回的字段列表進行編碼,用json 進行初始化

4.回調(diào)通知

通知控制器數(shù)據(jù)獲取完畢,成功或者失敗,一般采用閉包
閉包書寫比較麻煩,可以預先用typealias實現(xiàn)聲明

5.網(wǎng)絡訪問方法(依據(jù)具體的場景增減函數(shù))

調(diào)用網(wǎng)絡工具類方法,具體看是否需要分頁,數(shù)據(jù)成功取回以后,對數(shù)據(jù)存儲對象進行元素填充,并通過閉包進行回調(diào)

(二) 控制器之間引用

在開發(fā)中經(jīng)常會用到一個控制器去引用另外一個控制器的view,如下圖,有個UIViewController作為一個大容器,在每次滑動的時候需要加載一個新的UITableViewController。需要注意的點,首先是將UITableViewController的tableView添加UIViewController的view。
后來發(fā)現(xiàn)數(shù)據(jù)不顯示,只有一個空的tableView,說明UITableViewController已經(jīng)有了tableView,后來代碼進行了修改
分析:代碼中的vc屬于一個臨時變量,在方法執(zhí)行完以后就銷毀,但是由于addSubview方法對tableView持有,所以并未釋放掉,但vc已經(jīng)銷毀,數(shù)據(jù)不存在
解決方案:其實問題找到以后,解決方法就好說了,無非就是對vc進行強引用,有兩種解決方法
創(chuàng)建一個成員變量對vc 進行強引用,適用于單個控制
對于當前場景,多個控制器,可以采用addChildController的方式

(三)關于UITableViewController 的tableView 與 UIViewController 的view

UITableViewController有一個主要的UIView,用于記錄控制器內(nèi)子控件,或者所有子控件的容器,但是在打印UITableViewControllerview 和 tableView 發(fā)現(xiàn)二者內(nèi)存地址一致,即在UITableViewController中tableView即相當于UITableViewControllerview的作用,在添加子控件addSubview的時候,既可以用view也可以用tableView
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容