MyScript Interactive Ink SDK转换为数学返回?

时间:2018-04-25 22:09:28

标签: swift xcode handwriting-recognition

我使用MyScript Interactive墨水SDK转换手写数学方程式。我使用他们拥有的测试示例测试了SDK,一切都很好。我将很多代码逻辑导入到我的应用程序中,并成功地设置了引擎和编辑器。我可以编写项目,甚至可以在编辑器中使用重做,清除和撤消项目。问题是,每当我试图隐藏它时,它都会返回一个"?"。

要转换的函数在下面,与MyScript提供的示例中的代码完全相同 -

@IBAction func ConvertButtonWasTouchedUpInside(_ sender: UIBarButtonItem) {
    do {
        editorViewController.editor.waitForIdle()
        let supportedTargetStates = editorViewController.editor.getSupportedTargetConversionState(nil)
        try editorViewController.editor.convert(nil, targetState: supportedTargetStates[0].value)
    } catch {
        print("Error while converting : " + error.localizedDescription)
    }
    do
    {
        try equationInLatex = editorViewController.editor.export_(nil, mimeType: .laTeX)

    }
    catch
    {
        print("Error while printing : " + error.localizedDescription)
    }
    print(equationInLatex)
}

创建引擎包的代码和在AppDelegate.swift文件中在引擎中设置的代码也是一样的。

我附上了返回值看起来的图像

喜欢这里

enter image description here

我无法弄清楚为什么我遇到此错误以及我正在做错的引擎和/或编辑器设置的哪一部分。

谢谢!

1 个答案:

答案 0 :(得分:2)

看起来你错过了认可资产。

在提供的GetStartedSwift示例中,“Copy Bundle Resources”构建阶段中引用了一个"configuration-manager.search-path"文件夹,如快照中所示。您也必须将这些文件复制到项目中。

recognition assets

如果您愿意,可以重命名recognition-assets文件夹,但如果这样做,则必须更改AppDelegate.swift中的conf/math.conf设置

如果您只想要数学识别,则可能只想复制与数学相关的文件:resources/math/math-ak.resresources/math/math-grm-atk.res<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_shuffle" android:icon="@drawable/rand" android:orderInCategory="1" android:showAction="always" android:title="shuffle"/> <item android:id="@+id/action_end" android:icon="@drawable/end" android:orderInCategory="2" android:showAction="always" android:title="End"/> </menu> @Override public boolean onOptionsItemSelected(MenuItem item){ switch (item.getItemId()){ case R.id.action_shuffle: //shuffle break; case R.id.action_end: stopService(playIntent); musicSrv=null; System.exit(0); break; } return super.onOptionsItemSelected(item); }