--- 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.