More Related Content
Similar to I os swift 3.0 初體驗 & 玩 facebook sdk (20)
I os swift 3.0 初體驗 & 玩 facebook sdk
- 4. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
iOS 10 隱私權限設置
iOS 10 對隱私權限更加嚴格,解決辦法都是在info.plist文件添加對應的Key-Value就可以了。
麥克風權限:Privacy - Microphone Usage Description 是否允許此App使用你的麥克風?
相機權限: Privacy - Camera Usage Description 是否允許此App使用你的相機?
相冊權限: Privacy - Photo Library Usage Description 是否允許此App訪問你的媒體資料庫?通
訊錄權限: Privacy - Contacts Usage Description 是否允許此App訪問你的通訊錄?
藍牙權限:Privacy - Bluetooth Peripheral Usage Description 是否許允此App使用藍牙?
語音轉文字權限:Privacy - Speech Recognition Usage Description 是否允許此App使用語音識
別?
日曆權限:Privacy - Calendars Usage Description 是否允許此App使用日曆?
定位權限:Privacy - Location When In Use Usage Description 我們需要通過您的地理位置信息
獲取您周邊的相關數據
定位權限: Privacy - Location Always Usage Description 我們需要通過您的地理位置信息獲取您
周邊的相關數據,定位的需要這麼寫,防止上架被拒
- 5. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
UICollectionView 性能優化隨著開發者對UICollectionView的信賴,項目中用的地方也比較多,但是還是存在一
些問題,比如有時會卡頓、加載慢等。所以iOS 10 對UICollectionView進一步的優化。
UICollectionView cell pre-fetching預加載機制
UICollectionView and UITableView prefetchDataSource 新增的API 針對self-sizing cells 的改進
Interactive reordering
在iOS 10 之前,UICollectionView上面如果有大量cell,當用戶活動很快的時候,整個UICollectionView的卡頓會很
明顯,為什麼會造成這樣的問題,這裡涉及到了iOS 系統的重用機制,當cell準備加載進螢幕的時候,整個cell都已經加
載完成,等待在螢幕外面了,也就是整整一行cell都已經加載完畢,這就是造成卡頓的主要原因,專業術語叫做:掉幀.
要想讓用戶感覺不到卡頓,我們的app必須幀率達到60幀/秒,也就是說每幀16毫秒要刷新一次.
iOS 10 之前UICollectionViewCell的生命周期是這樣的:
1.用戶滑動螢幕,螢幕外有一個cell準備加載進來,把cell從reusr隊列拿出來,然後調用prepareForReuse方法,在這
個方法裡面,可以重置cell的狀態,加載新的數據;
2.繼續滑動,就會調用cellForItemAtIndexPath方法,在這個方法裡面給cell賦值模型,然後返回給系統;
3.當cell馬上進去螢幕的時候,就會調用willDisplayCell方法,在這個方法裡面我們還可以修改cell,為進入螢幕做最
後的準備工作;
4.執行完willDisplayCell方法後,cell就進去螢幕了.當cell完全離開螢幕以後,會調用didEndDisplayingCell方法.
- 6. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
iOS 10 UICollectionViewCell的生命周期是這樣的:
1.用戶滑動螢幕,螢幕外有一個cell準備加載進來,把cell從reusr隊列拿出來,然後調用
prepareForReuse方法,在這裡當cell還沒有進去螢幕的時候,就已經提前調用這個方法了,對比之前的
區別是之前是cell的上邊緣馬上進去螢幕的時候就會調用該方法,而iOS 10 提前到cell還在螢幕外面的
時候就調用;
2.在cellForItemAtIndexPath中創建cell,填充數據,刷新狀態等操作,相比於之前也提前了;
3.用戶繼續滑動的話,當cell馬上就需要顯示的時候我們再調用willDisplayCell方法,原則就是:何時需
要顯示,何時再去調用willDisplayCell方法;
- 7. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
4.當cell完全離開螢幕以後,會調用didEndDisplayingCell方法,跟之前一樣,cell會進入重用隊列.
在iOS 10 之前,cell只能從重用隊列裡面取出,再走一遍生命周期,並調用cellForItemAtIndexPath創建
或者生成一個cell.
在iOS 10 中,系統會cell保存一段時間,也就是說當用戶把cell滑出螢幕以後,如果又滑動回來,cell不用
再走一遍生命周期了,只需要調用willDisplayCell方法就可以重新出現在螢幕中了.
iOS 10 中,系統是一個一個加載cell的,二以前是一行一行加載的,這樣就可以提升很多性能;
iOS 10 新增加的Pre-Fetching預加載
這個是為了降低UICollectionViewCell在加載的時候所花費的時間,在 iOS 10 中,除了數據源協議和代
理協議外,新增加了一個UICollectionViewDataSourcePrefetching協議,這個協議裡面定義了兩個方
法:
- (void)collectionView:(UICollectionView *)collectionView
prefetchItemsAtIndexPaths:(NSArray<NSIndexPath *>
*)indexPaths NS_AVAILABLE_IOS(10_0);
- (void)collectionView:(UICollectionView *)collectionView
cancelPrefetchingForItemsAtIndexPaths:(NSArray<NSIndexPath *>
*)indexPaths NS_AVAILABLE_IOS(10_0);
- 8. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
https的問題
iOS 9中默認非HTTS的網絡是被禁止的,當然我們也可以把NSAllowsArbitraryLoads設置為
YES禁用ATS。不過iOS 10從2017年1月1日起蘋果不允許我們通過這個方法跳過ATS,也就是說
強制我們用HTTPS,如果不這樣的話提交App可能會被拒絕。但是我們可以通過
NSExceptionDomains來針對特定的域名開放HTTP可以容易通過審核。
Swif3.0 新增作用域訪問級別 fileprivate目前有如下訪問級別:
公開(public)
內部(internal)
文件外私有(fileprivate)
私有(private)
Alamofire經過測試,Alamofire的4.0.0版本僅支持iOS9+和Swift3.0.x,如果想使用Swift2.3開
發的同學可以安裝Alamofire的3.5.0版本,設置所有的Use Legacy Swift Language Version為
Yes。
- 9. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
Xcode 8 & Swift 3 改版注意事項
Swift 3 語法的變動
http://www.appcoda.com.tw/swift3-changes/
http://www.gegugu.com/2016/07/14/16450.html
https://read01.com/4moRGQ.html
- 10. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
FaceBook SDK:
1. 申請 FaceBook 開發者帳號
https://developers.facebook.com/
2. 建立應用程式
3. 建立 Xcode 專案
4. 下載 FaceBook SDK
5. 設定 Info.plist
6. FaceBook 應用程式 Bundle Identifier
7. 完成 Xcode 專案
- 11. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
申請 FaceBook 開發者帳號 https://developers.facebook.com/
確認原個人帳號註冊轉為開發人員帳號
c
- 15. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
FaceBook SDK
安裝設定步驟
下載 FaceBook SDK,並解壓縮
- 18. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
開啟終端機,進到專案資料夾
執行 pod init,建立 Podfile 文件
編輯 Podfile 文件
將連結設定檔拉(複製)
到專案底下
編輯Info.plist
- 19. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
貼上 FaceBook 提供之 Info.plist 內容,
貼於 </dict> 上方
並修改填入專案 ID 和 顯示名稱
- 26. iOS Swift 3.0 初體驗 & 玩 FaceBook SDK
選用 Facebook Button
FaceBook 登入連結
cc