//定義一個協議 protocol LogManagerDelegate { func writeLog() } //用戶登錄類 class UserController { var delegate : LogManagerDelegate? func login() { //查看是否有委托,然后調用它 delegate?.writeLog() } } //日志管理類 class SqliteLogManager : LogManagerDelegate { func writeLog() { print("將日志記錄到sqlite數據庫中") } } //使用 let userController = UserController() userController.login() //不做任何事 let sqliteLogManager = SqliteLogManager() userController.delegate = sqliteLogManager userController.login() //輸出“將日志記錄到sqlite數據庫中”