2020年6月18日 星期四

[iOS - Swift] extension

extension,擴展,用於在既有的Class Struct Enum上增加額外的功能。

class MyClass {
    
}

extension MyClass {
    func sayHello() {
        print("Hello")
    }
}

let myClass = MyClass()
myClass.sayHello()

也可以於原生提供的Class增加額外的功能。

extension String {
    func toIntValue() -> Int? {
        return Int(self)
    }
}

let string = "3"
print(string.toIntValue())

這種情況叫做Category,通常會開一個新的檔案,命名為要擴展的Class+

例如:
String+.swift

擴展也能拿來實作Protocol

extension ViewController: UITableViewDelegate {

}

沒有留言:

張貼留言