如何在 iOS Swift 3 中创建扩展文件并在 View Controller 中调用它?

How to create extension file and call it in View Controller in iOS Swift 3?

我制作了这样的扩展文件:

import Foundation
import Swift
import UIKit

extension UIButton{
func sayHello() {
        print("Hello bro...")
    }
}  

然后像这样在视图控制器中调用 sayHello 方法:

override func viewDidLoad() {
        super.viewDidLoad()
        sayHello()  
    }

但是显示这个错误:

我认为这个问题是由于在视图控制器中导入扩展文件造成的。
请帮助我。
谢谢。

使用extension UIViewController不使用UIButton

下面的代码扩展了 UIButton 所以

someButton.sayHello() 有效

extension UIButton {
    func sayHello() {
        print("Hello bro...")
    }
}  

如果您想在 viewDidLoad() 中使用 UIViewController 扩展 UIViewController 而不是 UIButton

extension UIViewController {
    func sayHello() {
        print("Hello bro...")
    }
}

它适用于 'viewDidLoad'

这是调用警报的一些示例扩展

例如)

extension UIViewController {
    func alert(title: String, message: String) {
        let alertController = UIAlertController(title: title, message: message, preferredStyle: .alert)
        alertController.view.tintColor = .black
        let someAction = UIAlertAction(title: "Some", style: .default, handler: nil)
        //let alertController.addAction(someAction)
        alertController.addAction(someAction)
        self.present(alertController, animated: true, completion: nil)
    }
} 

你的实现是错误的。您正在创建 UIButton 的扩展并在 UIViewController.

上调用方法
extension UIViewController {
func sayHello() {
        print("Hello bro...")
    }
} 

如果要创建 UIButton 扩展程序

 extension UIButton {
    func sayHello() {
            print("Hello bro...")
        }
    } 

然后您需要在 UIButton 上调用它,如下所示

let button = UIButton()
button.sayHello()