gpt4 book ai didi

ios - Swift - 实例 "not constructible with ' ... ."from "静态“方法

转载 作者:行者123 更新时间:2023-11-29 02:47:12 24 4
gpt4 key购买 nike

当我尝试通过“静态”方法(协议(protocol)要求)实例化一个类时,尽管我传递了正确的参数,但编译器无法识别初始化程序。

enter image description here

enter image description here

最佳答案

问题是您在方法声明中定义了一个名为“Comment”的模板,它掩盖了真正的 Comment 类。您需要为该模板参数指定一个不同的名称。

而且我相信您的 JSONSerializable 协议(protocol)没有按照您想要的方式定义。您可以在协议(protocol)中使用 Self 来引用实现该协议(protocol)的类,因此不需要模板。您的协议(protocol)可能如下所示:

protocol JSONSerializable {
class func instanceFrom(json: [String:AnyObject]) -> Self;
}

然后您将在 Comment 类中实现此方法:

class Comment: JSONSerializable {
...

class func instanceFrom(json: [String:AnyObject]) -> Comment {
return Comment(message: "lorem lorem", author: User())
}
}

但是,在 Swift 中更喜欢使用初始化器而不是类方法:

protocol JSONSerializable {
init(json: [String:AnyObject])
}

class Comment: JSONSerializable {
...

init(json: [String : AnyObject]) {
}
}

关于ios - Swift - 实例 "not constructible with ' ... ."from "静态“方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24976976/

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