gpt4 book ai didi

objective-c - swift 协议(protocol) : what am i doing wrong?

转载 作者:可可西里 更新时间:2023-11-01 01:42:43 24 4
gpt4 key购买 nike

@objc protocol Animal{
typealias ElementType
func getSiblings() ->[ElementType]
func getMother() -> ElementType?
func getFather() -> ElementType?
optional func addSibling(sibling:ElementType)
}

它一直给我错误信息:method cannot be marked @objc because its result type cannot be represented in Objective-C.提前致谢

最佳答案

我认为您不能混合使用 @objc 协议(protocol)和具有关联类型的协议(protocol)(即声明 typealias 的协议(protocol))。你不能声明一个独立的变量来表示一个具有关联类型的协议(protocol)——它们的存在只是为了用作泛型约束,而泛型是 Swift 独有的东西。而 @objc 协议(protocol)的目的是用于传递给 Objective-C 函数。因此,将两者结合起来没有意义。

这样说 – 当您将 Animal 类型传递给非泛型 Objective-C 类时,ElementType 的类型会是什么?

关于objective-c - swift 协议(protocol) : what am i doing wrong?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27750911/

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