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

我想我只是找不到正确的语法吗?任何帮助,将不胜感激。

最佳答案

如果someObject具有类型SomeClass,那么您需要像这样更新声明:

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


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

关于ios - 对象属性的Getter是否需要返回UnsafeMutablePointer <T>?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34936758/

10-11 18:14