咨询j2objc与实际案例

时间:2015-02-01 03:16:14

标签: java ios j2objc

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

我喜欢在陈列柜上了解它是如何运作的。 (抽象层面)

转换器是否会帮助/解决以下情况?

我有javacode访问SQLite数据库并将数据加载到ArrayList JavaClass实例(Tasks.java): - Procedure loaddata(); (loader.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 =&#34;&#34 ;;     ..     ..     ArrayList alSubtasks; }

如果我想在IOS应用程序列表中显示任务,我可以转换我的java类,以某种方式将它们绑定到我的IOS应用程序中,并使用转换后的loaddata()来使用新的数组(IOS语法) )在IOS UI-List中显示它? (从头开始,IOS中的UI-List I woulc代码。)

2 个答案:

答案 0 :(得分:2)

你有一般的想法,但不幸的是,SQLite是一个很糟糕的例子,因为你使用的是android.database API,它不可移植。

还有request for a portable SQLite library,尚未实施。如果您希望在可用时收到通知,请单击星形图标。

问题是功能齐全的库需要大量的本机代码,但实际上,大多数应用程序只使用一些方法。 Here's an email thread on a way for a developer to implement just the necessary SQLite support methods.

答案 1 :(得分:0)

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

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

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

我的制作时间还不多,但很简单,到目前为止对我有用。