问题描述
当我使用JSExport协议创建类时
@objc protocol Font_JSExports: JSExport {
var name : String { get }
}
class Font : NSObject,Font_JSExports
{
var name : String
var atlas : MTLTexture?
init(name: String)
{
super.init()
atlas = loadTexture( name )
}
deinit {
if let texture = atlas {
texture.setPurgeableState(.empty)
atlas = nil
}
print("freeing font",name)
}
}
并通过getFont()函数将该类传递给javascript上下文
class func getFont(_ name: String) -> Font
{
let list = getFonts()
for f in list {
if f.name == name {
return f
}
}
return list[0]
}
并从javascript获取对该类的引用
class Test
{
constructor()
{
this.font = System.getFont("Square")
}
}
当我删除JSContext时,永远不会调用字体类的deinit析构函数。如何在JSContext被破坏时将对象引用传递给被释放的JavaScript?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)