swift引入第三方庫常見問題:
首先需要了解下靜態庫,動態庫,framework的區別所謂的庫就是一段編譯好的二進位制檔案,加上標頭檔案,相關的資源檔案就可供別人使用
靜態庫:
(靜態鏈結庫)(.a)在編譯時會將庫copy乙份到目標程式中,
編譯完成之後,目標程式不依賴外部的庫,也可以執行 缺點是會使應用程式變大
動態庫:
(.dylib)編譯時只儲存了指向動態庫的引用。 可以多個程式指向這個庫,在執行時才載入,
不會使體積變大, 但是執行時載入會損耗部分效能,並且依賴外部的環境,如果庫不存在或者版本不正確則無法執行
framework:實際上是一種打包方式,將庫的二進位制檔案,標頭檔案和有關的資源檔案打包到一起,方便管理和分發。
對於是否使用framework,cocoapods 通過use_frameworks來控制
1.不使用use_frameworks! -> static libraries 方式 -> 生成.a檔案
在podfile中如不加use_frameworks!,cocoapods會生成相應的 .a檔案(靜態鏈結庫),
link binary with libraries: libpods-**.a 包含了其他用pod匯入有第三庫的.a檔案
2.use_frameworks! -> dynamic frameworks 方式 -> 生成.framework檔案
使用了use_frameworks!,cocoapods會生成對應的frameworks檔案(包含了標頭檔案,二進位制檔案,資源檔案等等)
link binary with libraries:pods_***.framework包含了其它用pod匯入的第三方框架的.framework檔案
1.純oc專案中 通過pod匯入純oc專案, 一般都不使用frameworks
2.swift 專案中通過pod匯入swift專案,必須要使用use_frameworks!(這個是那個作者的意見),
在需要使用的到地方 import afnetworking
3.swift 專案中通過pod匯入oc專案 (我沒有用橋接,用橋接報錯)
1) 使用use_frameworks,在橋接檔案裡加上#import "afnetworking/afnetworking.h"
2)不使用frameworks,橋接檔案加上 #import "afnetworking.h"
參考swift常用的框架
響應是程式設計rxswift:
類庫集合:
最全框架集合:
框架集合:下拉重新整理
框架集合:
********************====常用主流框架******************************=
網路請求框架alamofire:
moya是對alamofire的封裝:
swiftjson是swift 界 json 解析之王(不是字典轉模型,吧就送字串轉換成json物件):
字典轉模型handyjson:
自動布局框架snapkit:
網路監控:reachability.swift:
reachability 這個是oc的
mbprogresshud:(oc寫的,需要橋接)
下拉重新整理:mjrefresh(需橋接)
輪播框架:
跑馬燈:
相簿多選:
集合框架之 set集合
物件重複是指物件裡面的變數的值都相等,並不定是位址。list集合儲存的型別是基礎型別還比較好辦,直接把list集合轉換成set集合就會自動去除。當set集合儲存的是物件型別時,需要在物件的實體類裡面重寫public boolean equals object obj 和 public int has...
集合框架之Set TreeSet
treeset是set介面的實現類,底層資料結構是二叉樹。treeset的儲存方式按照一定的規則。儲存規則讓資料表現出自然順序。新增乙個新元素t的儲存步驟 1 如果集合無元素,t直接加入 如果集合有元素,t和根節點比較 2 如果t小於根節點 把t放到根節點的左子樹上 重複1 3步驟 3 t大於根節點...
集合框架之List
collection 為頂層集合介面,其下面分有list和set介面。list集合的特點 元素有序 可重複。可以通過索引index來增加 刪除元素。增 add addall add index,某元素 add index,某集合 刪 clear remove removeall remove ind...