无法将类型 'UnsafeMutableRawPointer!' 的值分配给类型 'UIView'
Cannot assign value of type 'UnsafeMutableRawPointer!' to type 'UIView'
我正在尝试将 Objective-C 源代码转换为 Swift。
在Objective-C下面的代码
myView = (__bridge UIView *)([SmartPlayerSDK SmartPlayerCreatePlayView:0 y:0 width:screenWidth height:playerHeight]);
其中 myView
是 UIView
我正在使用下面给出的函数库,
+ (void*)SmartPlayerCreatePlayView:(NSInteger)x y:(NSInteger)y width:(NSInteger)width height:(NSInteger)height;
它return地址。
我正在尝试转换为 Swift
myView = SmartPlayerSDK.smartPlayerCreatePlayView(0, y: 0, width: 10, height: 10)
smartPlayerCreatePlayView - Automatically convert to small letter
得到错误:- Cannot assign value of type 'UnsafeMutableRawPointer!' to type 'UIView'
如何解决这个问题。
原始指针和托管对象指针之间的桥接已完成
在 Swift 中使用 Unmanaged
类型。在你的情况下相当于
代码将是
let rawPointer = SmartPlayerSDK.smartPlayerCreatePlayView(0, y: 0, width: 10, height: 10)
let view = Unmanaged<UIView>.fromOpaque(rawPointer).takeUnretainedValue()
如果smartPlayerCreatePlayView()
returns一个(+1)保留对象
引用(如方法名称中的 "Create" 所示)然后它
应该是
let view = Unmanaged<UIView>.fromOpaque(rawPointer).takeRetainedValue()
平衡一下,否则会发生内存泄漏。
更多桥接转换、辅助函数和链接
有关文档,请参阅 。
我正在尝试将 Objective-C 源代码转换为 Swift。
在Objective-C下面的代码
myView = (__bridge UIView *)([SmartPlayerSDK SmartPlayerCreatePlayView:0 y:0 width:screenWidth height:playerHeight]);
其中 myView
是 UIView
我正在使用下面给出的函数库,
+ (void*)SmartPlayerCreatePlayView:(NSInteger)x y:(NSInteger)y width:(NSInteger)width height:(NSInteger)height;
它return地址。
我正在尝试转换为 Swift
myView = SmartPlayerSDK.smartPlayerCreatePlayView(0, y: 0, width: 10, height: 10)
smartPlayerCreatePlayView - Automatically convert to small letter
得到错误:- Cannot assign value of type 'UnsafeMutableRawPointer!' to type 'UIView'
如何解决这个问题。
原始指针和托管对象指针之间的桥接已完成
在 Swift 中使用 Unmanaged
类型。在你的情况下相当于
代码将是
let rawPointer = SmartPlayerSDK.smartPlayerCreatePlayView(0, y: 0, width: 10, height: 10)
let view = Unmanaged<UIView>.fromOpaque(rawPointer).takeUnretainedValue()
如果smartPlayerCreatePlayView()
returns一个(+1)保留对象
引用(如方法名称中的 "Create" 所示)然后它
应该是
let view = Unmanaged<UIView>.fromOpaque(rawPointer).takeRetainedValue()
平衡一下,否则会发生内存泄漏。
更多桥接转换、辅助函数和链接
有关文档,请参阅