我正在尝试创建一个基于其关联类型进行不同操作的类。 Apon初始化我将一个类型传递给初始化器以及一些未显示的其他参数。我的困境是我要编写的以下代码,但由于编译器错误而无法解决。
class Foo
{
var data: UnsafeMutablePointer<T>
var type: T.Type
init?<T>(type: T.Type)
{
data = UnsafeMutablePointer<T>
self.type = type
}
func prepareForData()
{
data = UnsafeMutableRawPointer(memoryAddress + variableOffset).bindMemory(to:type.self, capacity:1)
}
}
理论上将使用类,如
let thing = Foo(Int)
或let thing2 = Foo(coolStruct)
这在Swift中是否可能?
答案 0 :(得分:1)
无法检查自己,但以下内容应该编译并正常运行:
class Foo<T>
{
var data: UnsafeMutablePointer<T>
var type: T.Type
init?(type: T.Type)
{
data = UnsafeMutablePointer<T>()
self.type = type
}
func prepareForData()
{
data = UnsafeMutableRawPointer(memoryAddress + variableOffset).bindMemory(to:type.self, capacity:1)
}
}