静态库无法初始化mlmodel

时间:2018-01-26 13:53:14

标签: ios swift xcode coreml

我想在我的库中加载我的模型(.a)

init正在尝试从app bundle加载已编译的mlmodel,但是bundle包含编译库的应用程序的路径而不是相反

.visa {
          background-image: url('....
}
.mastercard{
          background-image: url('....
}

似乎无法找到任何相关问题。

设置是经典的,一个Objective-c项目(使用react-native)将多个xcodeproj作为库嵌入(模型以swift方式加载),我假设hacky解决方法是将已编译的模型包含在已修改的类中加载它但看起来很脏。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,解决你在这里的评论中写的更大的空间。

静态库不能包含非代码资产。唯一的方法是通过" trickery"使您的字节数据资产为.a中的uint8_t *(其他适当的数据类型)符号。通过这样做,您将引用内存(通过该符号)与文件。显然不是很理想的原因。

您可以采取以下几种方法:

  • 直接将商品添加到应用包中。
  • 如果您使用Xcode构建.a,请在构建.a时为资产创建一个包。然后将该捆绑包添加到应用程序中。

我目前在我的游戏引擎中使用后者,我在其中嵌入了字体(如调试字体)和引擎所需的其他资源。请注意,无论如何,您都必须将单个资产或捆绑包添加到应用程序(应用程序包)。但是,对于后者,您只需添加一个项目。

您拥有的任何捆绑引用都是该捆绑包。我处理的方式是有一个回退系统,我可以将我的代码指向正在使用的捆绑包。然后它沿着链条向下找到我需要的资产。