gpt4 book ai didi

SpriteKit 的 swift 协议(protocol)初始化函数错误

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

谁能告诉我我的代码有什么问题吗?

code in playground

error detail

protocol PersonWithName: class  {
var personName: String {get set}

init(name: String)
}

class NameCard<PersonType: SKSpriteNode where PersonType: PersonWithName> {

var person: PersonType

init() {
self.person = PersonType(name: "No Name") // this line error.
}
}

最佳答案

为了更简短的说明,我将 SKSpriteNode 替换为 Any,因为您必须处理 SKSpriteNode 的指定 init() code> 稍后会详细介绍。有关协议(protocol)中初始化程序要求的更多详细信息,请查看 this section of Apple's Developer Guide

protocol PersonWithName: class  {
var personName: String {get set}
init(name: String)
}

class NameCard<PersonType: Any where PersonType: PersonWithName> {

var person: PersonType

init() {
self.person = PersonType(name: "No Name")
}
}

class ExampleClass: PersonWithName {
var personName: String = ""

required init(name: String) {
personName = name
}
}

var test = NameCard<ExampleClass>()
print(test.person.personName) // "No Name"

关于SpriteKit 的 swift 协议(protocol)初始化函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34657131/

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