Swift - Protocol&Delegate 露易兹才人小剧场

//看门狗经典场景解释代理委托机制

//

//  ViewController.swift

//  ProtocolDelegate

//

//  Created by sz on 16/1/1.

//  Copyright (c) 2016年 sz. All rights reserved.

//

import UIKit

//自定义一个协议

protocol HouseSecurityDelegate {

func handleIntruder()

}

//持有遵守协议者(代理人)的主人

class House: NSObject {

var delegate:HouseSecurityDelegate?

var name:String?

func burglarDetected()

{

print("im " + name!)

println(" i need a dog")

delegate?.handleIntruder()

}

}

//代理方--才狗! 汪汪 !(注意Swift遵守协议是继承语法,是冒号)

//看门狗类继承了NSObject,HouseSecurityDelegate

//Swift在你对协议的必选方法未实现时会报错(does not conform to)

class GuardDog: NSObject,HouseSecurityDelegate {

//遵守原则,谁继承,谁实现方法

func handleIntruder() {

println("614 im saito")

}

}

class ViewController: UIViewController {

override func viewDidLoad() {

super.viewDidLoad()

let myhouse = House()

myhouse.name = "louise"

myhouse.burglarDetected()

let saito = GuardDog()

myhouse.delegate = saito

myhouse.burglarDetected()

}

override func didReceiveMemoryWarning() {

super.didReceiveMemoryWarning()

// Dispose of any resources that can be recreated.

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 3,315评论 3 25
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 3,867评论 0 6
  • 132.转换错误成可选值 通过转换错误成一个可选值,你可以使用 try? 来处理错误。当执行try?表达式时,如果...
    无沣阅读 1,307评论 0 3
  • 代理又称为协议,委托,protocol ,是iOS开发中经常用到的设计模式。刚学习iOS的时候不是特别理解代...
    小芳姑娘2012阅读 484评论 0 1
  • 常见继承属性 文本相关属性都可以继承 color、font、font-family、font-size、font-...
    jhs1873阅读 217评论 0 0