Ios 对象属性的Getter需要返回UnsafeMutablePointer<;T>;?
我正在使用Swift,我正在使用的协议之一需要返回特定对象的Ios 对象属性的Getter需要返回UnsafeMutablePointer<;T>;?,ios,objective-c,swift,pointers,Ios,Objective C,Swift,Pointers,我正在使用Swift,我正在使用的协议之一需要返回特定对象的不可配置指针 我有这样的想法: @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.
不可配置指针
我有这样的想法:
@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>
}
}
@objc var myProperty:UnsafeMutablePointer
{
得到
{
//我在这里调用一个类函数来获取“someObject”
//返回我需要传回指向它的指针的对象。
返回非女性化指针
}
}
问题是Xcode不喜欢这样。它抱怨“>”不是一元运算符
我还尝试删除不可分配指针
,并在someObject
前面使用&
,但它抱怨要在函数的参数列表中立即使用&
我想我就是找不到合适的语法?任何帮助都将不胜感激 如果someObject
的类型为SomeClass
,则需要如下更新声明:
@objc var myProperty:UnsafeMutablePointer<SomeClass>
{
get
{
return UnsafeMutablePointer<SomeClass>(unsafeAddressOf(someObject))
}
}
@objc var myProperty:UnsafeMutablePointer
{
得到
{
返回UnsafeMutablePointer(unsafeAddressOf(someObject))
}
}
泛型参数需要是返回数据的类型,并且您还需要使用所需对象的内存地址初始化专用的unsafemeutablepointer
。请显示您试图满足的实际协议声明。我知道您在那里做了什么。是的,你的假设是正确的“SomeClass”与“SomeObject”是同一类型的对象。我尝试了您在添加编辑的UnsafeAddress之前所做的操作。我遇到此错误:无法使用类型为“(AudioStreamBasicDescription)”的参数列表调用类型为“UnsafeTablePointer”的初始值设定项。添加“unsafeAddressOf”会导致以下错误:参数类型“AudioStreamBasicDescription”与预期类型“AnyObject”@MarioAGuzman不符,具体取决于上下文,您可能不需要这样的属性,尤其是unsafemeutablepointer
在以后使用是不安全的,请看一看,例如