首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift - Xcode 6 beta 5中的协议声明

Swift - Xcode 6 beta 5中的协议声明
EN

Stack Overflow用户
提问于 2014-08-21 17:45:10
回答 1查看 330关注 0票数 0

使用Xcode 6、beta 5、协议和委托不像第一次那样工作。调用self.delegate?.printCar()时不调用printCar()。我现在如何使用协议和委托?

代码语言:javascript
复制
import UIKit

protocol communication{
    func printCar()
}

class car{
    var delegate:communication?

    init(){}

    func passCar(){
        self.delegate?.printCar()
    }
}

class ViewController: UIViewController,communication {

    override func viewDidLoad() {
        super.viewDidLoad()
        println("start")
        var bmw = car()
        bmw.passCar()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    func printCar(){
        println("car")
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-21 17:51:24

您没有设置汽车的delegate属性,因此没有可以调用printCar()的对象。

此外,在Swift中对类型名使用初始大写是惯例。(您会注意到,这是一种非常强的约定,即便如此,语法高亮器也希望如此。)

顺便说一句,它与这个问题无关,但您现在可能希望使用Xcode 6 beta 6。

另一个不相关的问题:您的car类的delegate属性可能应该标记为weak。否则,如果汽车的委托是拥有该汽车的对象,则会出现内存泄漏。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25432683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档