我在Swift工作,我正在使用的其中一个协议需要返回特定对象的UnsafeMutablePointer<T>
。
我有这样的事情:
@objc var myProperty:UnsafeMutablePointer<someObject>
{
get
{
// I call a class function here to get a 'someObject'
// return object which I need to pass back a pointer to it.
return UnsafeMutablePointer<someObject>
}
}
问题是Xcode不喜欢这个。它抱怨'>' is not a unary operator
。
我也尝试删除UnsafeMutablePointer<>
并在&
前使用someObject
,但它抱怨&
将立即用于列表中函数的参数。
我想我找不到合适的语法?任何帮助,将不胜感激。
答案 0 :(得分:0)
如果someObject
的类型为SomeClass
,那么您需要更新您的声明:
@objc var myProperty:UnsafeMutablePointer<SomeClass>
{
get
{
return UnsafeMutablePointer<SomeClass>(unsafeAddressOf(someObject))
}
}
泛型参数必须是返回数据的类型,您还需要使用所需对象的内存地址初始化专用UnsafeMutablePointer
。