--- tags: iOS --- # iOS xcode 建立與使用framework 在開發iOS時,有時候可能會出現需要重複使用的程式碼,但假設段程式碼需要在不同的target裡要使用到的話,因為各target無法相互使用各自裡面的程式碼,這時候可以利用framework來達到這麼目的。 ## Create a Framework  首先先建立一個framework的專案,並給他一個專案名稱。  當專案開好之後會顯示下方的畫面。  再來我們先來新增一的swift的檔案,用來增加要共用的class以及function。    接著我們在裡面建立一個名為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也完成了。   然後我們可以在Build資料夾之下找到建立好的framework。   ## Import Framework to Project 完成framework後,接下來就是要將這個framework在專案中進行導入與連結,導入其實就是將framework整個複製到專案內。  再來就是進行framework的連結。在專案的General頁面中,找到framework, Libraries, and Embedded Content後,點選+號來進行新增。    完成後就可以在剛剛的項目內新增的framework。  在左邊的檔案List中Frameworks資料夾也可以看到。  接下來就可以直接使用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) } } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up