gpt4 book ai didi

swift - 无法在 Swift 语言中实例化通用类型的数组

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

我正在尝试构建一个类,该类拥有一个包含通用类型对象的数组。到目前为止,我一直没有成功。这是我正在做的:

class GenericTest<T>: NSObject {
var objects = T[]()
}

var buffer = GenericTest<String>()

当我在程序编译、预运行时执行此操作时出现段错误。如果我不概括,一切都可以毫无问题地编译

class NonGenericTest: NSObject {
var objects = String[]()
}

var buffer = NonGenericTest()

但这不是我想要采用的方法,因为我必须为各种类型解决这个问题。知道为什么会这样吗?

最佳答案

出于某些原因,在 Swift 中使用泛型类时,从 NSObject 继承并不是一个好主意。我会说避免在 任何 Swift 类中这样做,除非你绝对必须这样做。如果您需要 Obj-C 兼容性,请使用 @objc 前缀标记您的类(以及将从 Obj-C 调用的任何方法)。

愚蠢但是......是的:

@objc class MyGeneric<T>
{
var array = T[]()
}

var buffer = MyGeneric<String>()

您可以使用基础类,如 NSStringNSDictionary 以及任何其他您想要的泛型类型参数,但我建议不要从 NSObject< 继承 在通用类定义中。

关于swift - 无法在 Swift 语言中实例化通用类型的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24151046/

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