对象属性的getter需要返回UnsafeMutablePointer <t>吗?

时间:2016-01-22 00:06:01

标签: ios objective-c swift pointers

我在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,但它抱怨&将立即用于列表中函数的参数。

我想我找不到合适的语法?任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果someObject的类型为SomeClass,那么您需要更新您的声明:

@objc var myProperty:UnsafeMutablePointer<SomeClass>
{
   get
   {    
      return UnsafeMutablePointer<SomeClass>(unsafeAddressOf(someObject))
   }
}

泛型参数必须是返回数据的类型,您还需要使用所需对象的内存地址初始化专用UnsafeMutablePointer