1

我打算将一个android应用程序移植到IOS(ipad等......),在谷歌研究期间我发现了j2objc。有很多关于 j2objc 的讨论,我不知道它是如何工作的以及什么是可能的。(我知道,最好从头开始移植一个应用程序,然后相信一个神奇的转换器,它可以完成这项工作。但我也想看看这个:-))

我喜欢在展示中了解它是如何工作的。(抽象级别)

转换器是否可以帮助/适用于以下情况?

我有访问 SQLite 数据库并将数据加载到 ArrayList JavaClass 实例(Tasks.java)中的 javacode: - 过程 loaddata(); (加载器.java)

ArrayList<Task> alTask=new ArrayList<Task>();
Cursor c = sqlitedatabase.rawQuery(sSQL, null);
c.moveToFirst();

while (!c.isAfterLast()) {
    Task t=new Task();
    t.setname(c.getString(0));
    ..
    ..
    alTask.add(t);
}

return alTask;
  • 类任务(Task.java)

    类任务{ String sName=""; .. .. ArrayList alSubtasks; }

如果我想在 IOS 应用程序列表中显示任务,我可以转换我的 java 类,以某种方式将它们绑定到我的 IOS 应用程序中,然后使用转换后的 loaddata() 来使用新的 Array(IOS 语法) 来显示它在 IOS UI 列表中吗?(我将在 IOS 中从头开始编写的 UI 列表。)

4

2 回答 2

2

您的总体思路是正确的,但不幸的是,SQLite 是一个糟糕的示例,因为您使用的是不可移植的 android.database API。

一个便携式 SQLite 库的请求,但尚未实现。如果您希望在可用时收到通知,请单击星形图标。

问题是一个功能齐全的库需要大量的本地代码,但在实践中,大多数应用程序只使用少数几种方法。这是一个电子邮件线程,用于让开发人员仅实现必要的 SQLite 支持方法。

于 2015-02-01T04:34:44.333 回答
0

最简单的方法是使用一些可在 Android 和 iOS 平台之间移植的 SQLite 实现。j2objc 开箱即用的工具\库集不支持它。

所以当我遇到这个问题时,我为此开发了一些解决方案: https ://github.com/vals-productions/sqllighter 。

可以用 java 编码并转换为目标 c,或者进行两种语言看起来非常相似的“并行”编码。自述文件包含一些示例。

我还没有太多的制作时间,但足够简单,到目前为止对我有用。

于 2015-08-26T06:25:28.127 回答