gpt4 book ai didi

swift - 协议(protocol)中的方法

转载 作者:行者123 更新时间:2023-11-30 12:13:28 25 4
gpt4 key购买 nike

我对面向协议(protocol)的编程非常陌生,所以我的问题可能很简单。

我打算定义一个具有clone()方法的Cloneable协议(protocol)。该方法返回的对象的内容与调用clone()方法的对象的内容相同。因此,clone()方法的返回类型必须调整为采用Cloneable协议(protocol)的类。

protocol Cloneable{

func clone() -> AnyObject
}


public final class Circle : Cloneable{


private var radius : Double
private var area : Double
private var perimeter : Double


public init( radius : Double ){
self.radius = radius
area = PI * radius * radius
perimeter = 2 * PI * radius
}

public convenience init(){
self.init( radius : 1.0 )
}

func clone() -> Circle{
return Circle( radius : self.radius )
}
}

我收到错误,Class Circle 不符合 Cloneable 协议(protocol)。它要我用 Circle 更改 AnyObject。如果我这样做,这个协议(protocol)如何用于所有类?

最佳答案

更改此代码 -

func clone() -> Circle{
return Circle( radius : self.radius )
}

这段代码 -

 func clone() -> AnyObject {
return Circle( radius : self.radius )
}

关于swift - 协议(protocol)中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45728453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com