Swift 创建不安全的泛型指针时出现语法错误(无法推断泛型参数';指针对象')

Swift 创建不安全的泛型指针时出现语法错误(无法推断泛型参数';指针对象'),swift,generics,Swift,Generics,我正在围绕GObject构建包装器,并尝试为其创建通用指针 class Object<T> { internal(set) var object = UnsafeMutablePointer(nil) } 类对象{ 内部(集合)变量对象=未配置指针(nil) } 但我得到了这个错误 我认为应该解决这个类型,但是编译器会抱怨。我是否正确创建了此指针?这只是编译器错误,还是我做错了 编辑 我尝试了我脑海中出现的每一种语法,如下所示: class Object<T&g

我正在围绕
GObject
构建包装器,并尝试为其创建通用指针

class Object<T> {
    internal(set) var object = UnsafeMutablePointer(nil)
}
类对象{
内部(集合)变量对象=未配置指针(nil)
}
但我得到了这个错误

我认为应该解决这个类型,但是编译器会抱怨。我是否正确创建了此指针?这只是编译器错误,还是我做错了


编辑 我尝试了我脑海中出现的每一种语法,如下所示:

class Object<T> {
    internal(set) var object: UnsafeMutablePointer<T>?

    init() {
        object = UnsafeMutablePointer<T>(nil)
    }
}
类对象{
内部(设置)变量对象:UnsafeMutablePointer?
init(){
对象=非女性化指针(nil)
}
}
似乎什么都不起作用,因为编译器无法解析类型


第二种方法中的类型声明是正确的。错误消息“使用不明确”是因为
UnsafeMutablePointer
有两个初始值设定项候选项接受
nil
:一个接受
OpaquePointer?
,另一个接受
UnsafeMutablePointer?

在您的情况下,只需分配
nil

init() {
    object = nil
}

您也可以在属性定义中正确执行此操作,无需在
init

中执行此操作。通过在构造函数中传递
nil
,结构无法推断类型。只需键入
unsafemeutablepointer(nil)
。这应该行得通,在我问这个问题之前,我也试过了。它也不起作用。在Swift 3中,只有可选指针可以是
nil
,例如
var object:unsafemeutablepointer?=nil
–但了解指针在代码中的使用方式会很有趣。有些相关:。虽然在您的情况下,您可以将其保留为
internal(set)var object:UnsafeMutablePointer?
–默认情况下,它将被初始化为
nil
@martin-r,在这里您可以找到源代码,这样您就可以看到它的用法,没有什么特别之处,我只是在尝试桥接。