標籤:
在iOS9中通過photos架構來擷取本地圖片資源時,是蘋果現用的方法,而以前的ALAssetsLibrary架構是過時了,但由於現在iOS9才剛發布不久iOS8以及iOS7都存在一定量的比例,所以這個過時的架構,我們也要弄清楚,現鞏固一下ALAssetsLibrary架構。
1.什麼是ALAssetsLibrary架構
簡單來說ALAssetsLibrary就是我們iOS應用程式訪問本機視頻、照片的一個橋樑,通過這個橋樑我們能夠輕鬆獲得視頻、照片的基本詳細資料。
2.基本使用方法
在使用ALAssetsLibrary時,我們首先需要匯入ALAssetsLibrary架構,而匯入ALAssetsLibrary架構的方式一般都是採用先Linked再#import<>,不過我們還可以直接採用@import的方式匯入即可,而不需要linked。
1>.通過ALAssetsLibrary擷取相簿專輯:ALAssetsGroup
2>.通過ALAssetsGroup擷取專輯中圖片的詳細資料:ALAssets
3.解決問題
通過ALAssetsLibrary擷取到圖片資源後,將其按時間順序顯示在另一個tableView當中,其中遇到了一個圖片顯示不正確的問題:
1>.當你第一個顯示的時候上拉以及下拉都會重新添加imageView,當時我想到是在重構的set方法中每一次調傭set方法時都會有添加,於是我弄了一個全域的BOOL類型,讓其只添加一次。
2>.當你只添加一次之後,發現得到的圖片資源資料根本就只有剛開始時顯示的那5張,於是我在思考模型是否出錯了,簡單的做了一個測試代碼,模型是對了。
3>.當模型是正確的之後,圖片還是一樣得不到有效改善,於是,我又在每次調用set方法的初始地方再一次寫一個簡單的測試代碼檢測模型的正確性。
4>.當set方法的初始地方,也就是上拉、下拉時重複調傭的返回UITableViewCell的這個方法中確認了模型的正確性之後,我又去set方法裡面找模型的正確性,發現它是錯誤的。
由於我採用了由始至終UITableView只建立一個UItableViewCell的方法,而在上拉下拉中重複應用,因而造成了每次裡面的資料又只有那5條,因為它只建立了一次,所以當我每次得到的資料就是那重複的5條,至於為什麼只建立一次就是因為我第一條的解決方案所引起的。
iOS通過ALAssets擷取照片