--- tags: iOS --- # iOS xcode 建立與使用framework 在開發iOS時,有時候可能會出現需要重複使用的程式碼,但假設段程式碼需要在不同的target裡要使用到的話,因為各target無法相互使用各自裡面的程式碼,這時候可以利用framework來達到這麼目的。 ## Create a Framework ![](https://i.imgur.com/6e0vVuw.png) 首先先建立一個framework的專案,並給他一個專案名稱。 ![](https://i.imgur.com/8idmYKf.png) 當專案開好之後會顯示下方的畫面。 ![](https://i.imgur.com/fOhv3c9.png) 再來我們先來新增一的swift的檔案,用來增加要共用的class以及function。 ![](https://i.imgur.com/QiugrmB.png) ![](https://i.imgur.com/R1xBfcj.png) ![](https://i.imgur.com/6vOzYts.png) 接著我們在裡面建立一個名為Tool的class以及在該class中建立一的addNumber的方法。 ```=swift import Foundation public class Tool{ public init(){} public func addNumber(a:Int, b:Int) -> Int{ return a+b } } ``` 因為是要提供給提他traget使用,所以要留意class以及fuction都要設定public,**並一個重點,class的init()方法也要設定為public**,以便可以再提他地方進行實例化。 完成後直執行build,但在build之前也要確定這個framework是要使用在虛擬機還是在實機上,如果想要使用在實機上,就需要選擇"Any iOS Device",完成build後framework也完成了。 ![](https://i.imgur.com/o6VmTPe.png) ![](https://i.imgur.com/7iCU8Bk.png) 然後我們可以在Build資料夾之下找到建立好的framework。 ![](https://i.imgur.com/AAs3HpK.png) ![](https://i.imgur.com/umLwWZN.png) ## Import Framework to Project 完成framework後,接下來就是要將這個framework在專案中進行導入與連結,導入其實就是將framework整個複製到專案內。 ![](https://i.imgur.com/XcnknOJ.png) 再來就是進行framework的連結。在專案的General頁面中,找到framework, Libraries, and Embedded Content後,點選+號來進行新增。 ![](https://i.imgur.com/t0XSa77.png) ![](https://i.imgur.com/e2wy6ik.png) ![](https://i.imgur.com/T2Yp5nq.png) 完成後就可以在剛剛的項目內新增的framework。 ![](https://i.imgur.com/GT2YZFR.png) 在左邊的檔案List中Frameworks資料夾也可以看到。 ![](https://i.imgur.com/XZgOFat.png) 接下來就可以直接使用framwork內的功能。 ```=swift import UIKit import AddNumberFramwork class ViewController: UIViewController { @IBOutlet weak var TextInput1: UITextField! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } @IBAction func test1Button(_ sender: Any) { let showResult : String = TextInput1.text ?? "Is Empty" let tool = Tool() let numberResult : Int = tool.addNumber(a: 1, b: 2) print(showResult+" "+numberResult.description) } } ```