swift-protocols

    1热度

    1回答

    考虑沿着这些路线的协议实现的东西协议静态方法? class ThingBox<T: Thing>: Thing { var thing: T required init(thing: T) { self.thing = thing } static func *(lhs: Float, rhs: Self) -> Self { return Self(thi

    2热度

    1回答

    我在尝试将Self作为协议一部分的泛型函数中的where子句的一部分时遇到问题。 例如,说我有这个协议和这个定义泛型函数: protocol Animal { associatedtype FoodSource func eat(_ food:FoodSource) } // The where clause specifies that T2 must conform

    1热度

    3回答

    我想创建类型为的变量Codable。稍后在JSONEncoder类中使用它。我想从下面的代码应该可以正常工作,但它给我的错误: Cannot invoke encode with an argument list of type (Codable) . 如何声明可编码的变量JSONEncoder将采取无错? struct Me: Codable { let id: Int le

    1热度

    3回答

    所以我写了一个简单的协议: protocol PopupMessageType{ var cancelButton: UIButton {get set} func cancel() } ,并有customView: class XYZMessageView: UIView, PopupMessageType { ... } ,然后我目前有: class PopU

    0热度

    2回答

    我正在尝试使用一些更新命名属性的默认方法创建一个协议。不幸的是如果我改变了方法变异的建议,然后我在使用了火法的角度得到一个错误,我得到一个错误Left side of mutating operator isn't mutable… protocol Weapon { var energy: Int { get set } var fireEnergy: Int { get }

    0热度

    1回答

    深入研究函数式编程和整体快速我被多种处理方式所淹没。在这种情况下,我希望struct采用Comparable,但可以有条件地切换哪些属性在重载操作符中使用。 比方说,我有以下的,一个快速排序(从和合Yahel的Wenderlich FP教程),延长任何类似阵列,这将很容易适应我Collection的Student小号 struct Student { let name: String

    2热度

    2回答

    我正在建造一个农场,所有可以种植的东西都符合Growable协议。当你种的植物,你可以调用这个FUNC: myFarm.planting<T: Growable>(qty: Int, of: T.Type) -> Farm 现在我想农场的每个实例有一个字典实例变种,如: var crops = [Growable.Type: Int] 的问题是,即使我使可扩展协议继承Hashable,这不利于Gr

    0热度

    1回答

    我有点卡住试图为我的UI元素定义一个容器。 正如我想要的东西,它封装了一个非唯一的标签,一个值,可以是任何可比的对象,被优先选择的一个概念,我想出了以下协议: protocol OptionProtocol:Comparable { associatedtype Key:Comparable associatedtype Value:Comparable var k

    0热度

    2回答

    我有一个协议内的函数,它将TableViewcell作为参数。 protocol GoingButtonDelegate { func goingButtonPressed(cell: TableViewCell) } class TableViewCell: UITableViewCell { // Outlets @IBOutlet weak var goi

    1热度

    3回答

    我在斯威夫特文件中声明: protocol SocketManagerDelegate { func webSocketDidReceiveMessage(message:Message) func socketWasReconnected() func webSocketDidFailWithError(error:String) } import Found