Swift,接口和抽象类

时间:2015-07-28 11:49:56

标签: swift interface polymorphism protocols abstract

我需要创建一个接口或抽象类java样式。 Money是一种协议,相当于Java接口。

在Euro类中实现接口(协议),但它在函数时间中给出了错误。

在函数时间我使用多态并返回Money,因为Euro实现了Money接口(协议),但我有一个错误:"使用未声明的类型' Money'。为什么?

protocol Money {
    var amount: Int {get set}
    func times(multiplier: Int) -> Money
    init (amount: Int)
}

class Euro : NSObject, Money {
    internal var amount: Int

    required init(amount: Int) {
        self.amount = amount
    }

    func times(multiplier: Int) -> Money {
        return Euro(amount: self.amount * multiplier)
    }

    override func isEqual(object: AnyObject?) -> Bool {
        return self.amount == (object as! Euro).amount
    }
}

2 个答案:

答案 0 :(得分:0)

例如,如果我创建Euro的实例,然后调用其.times方法,那么您的代码似乎适用于Swift 2 Xcode 7.0 beta 4。例如:

var xEuro = Euro(amount: 10)
print(xEuro.times(2).amount)

答案 1 :(得分:0)

这是解决方案...... http://roadfiresoftware.com/2014/06/unit-testing-with-swift/

要使用XCTest测试Swift类,您需要将该类添加到测试目标。 (希望这是一个暂时的黑客攻击,但是自从Swift处于测试阶段以来就是这样。我不会屏住呼吸。)因此,在编辑器中选择并显示您的类后,请查看文件检查器中的目标成员资格部分。 (右侧窗格)确保选择了应用目标和测试目标。