1

我项目的一类是使用迭代器。Eclipse 标记java.util 中没有迭代器。

这是源代码的摘录:

import java.util.Iterator;

java.util.Iterator it = rows.iterator();
while (it.hasNext()) {
    list.addView(((RowLayout)it.next()).getView());
}

尽管如此,当我为Android编译时没有问题。该 apk 工作正常,可以部署到设备上。当我为 iPhone 编译时,无法构建该项目。

4

2 回答 2

1

NeoMAD 支持仅限于 Java ME API 的 Java 1.3。您正在使用 Java 迭代器类,它是 Java SE 的一部分,而不是 Java ME。这就是为什么:

  • Eclipse 插件强调了一个问题
  • 你不能为 iPhone 编译应用程序

您的代码适用于 Android,因为 Java.Iterator 类存在于该平台上。由于 NeoMAD 使用 Android SDK 构建应用程序,因此没有错误。但是 NeoMAD 使用自己的转编译器来生成 Objective-C 源代码,并且此操作仅限于 Java ME API。这就是为什么您不能将 Java SE 类(例如 iOS 的 Iterator 或 Windows Phone 目标)与 NeoMAD 一起使用。

为了规避这个问题,您必须修改代码以使用整数计数器循环遍历向量元素。

于 2013-10-11T11:56:47.823 回答
1

您在导入声明后忘记了分号

import java.util.Iterator;

此外,如果您使用类型的限定名称(如下行所示),则不需要导入声明

java.util.Iterator it = rows.iterator();
于 2013-10-11T09:23:31.377 回答