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