java - 将类型化数组从 Android 移植到 iPhone 应用程序

标签 java android iphone objective-c

我必须将我的 Android 应用程序移植到 iPhone,我想知道有什么替代方案(如果有的话)来移植类型化数组。

主要问题是可读性,与其说是强制类型 - 因为已经有答案可用。然而,与简单的 NSMutableArray *NSMutableDictionary 声明相比,它们相当“笨重”。

所以基本上如果我在 Java 中有这样的东西:

initAllCustomers(List<Countries> allCountries, List<Nationalities> allNationalities, Hashtable<Integer, Job> allJobPossibilities)

看起来像这样:

- (id)initAllCustomers: (NSMutableArray *) allCountries allNationalities: (NSMutableArray *) allNationalities allJobPossibilities: (NSMutableDictionary *)allJobPossibilities;

现在查看 iPhone 代码时,您对数组或字典中的元素一无所知 - 这大大降低了代码的可读性。 (不幸的是,文本较多,信息较少)

有没有办法在不引入大量(打字和执行速度)开销的情况下解决这个问题? 因为我有很多像这样的不同的大型结构。

最佳答案

iOS 代码对您来说可读性可能较差,因为您来自 Android 背景。如果您多年来一直在查看这样的代码行,那是完全正常的。在另一个座位上,我查看了 Java 代码,发现在这种情况下它非常冗长。

如果你想移植到 iOS,在这种情况下你有两种选择:

  1. 移植到 iOS
  2. 不要移植到 iOS

选项 1 意味着,使用 native Cocoa 框架,例如您已经尝试过 NSMutableArray(顺便说一句,在您的示例中应该是 NSArray)。

选项 2 意味着,使用 C++ 和 C。STL 允许您使用您认为重要的类型化变量。

另外,这段代码让我对你在这里初始化的内容感到紧张。它是某种数据库吗?您可能想看看 CoreData。

关于java - 将类型化数组从 Android 移植到 iPhone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14850065/

相关文章:

java - 简单的递归问题返回方式

android - 传递http响应时,java.lang.String类型的值无法转换为JSONObject

android - ActionBarCompat 下拉菜单上的样式单选按钮

java - 如果然后使用微调器显示的值

java - 如何在Java MIDI程序中更改乐器

java - 如何从 ArrayAdapter 类更新 ListView?

ios - UITextField textFieldDidEndEditing 未从启用调用到禁用 UITextField

iphone - scrollToTop 不适用于 iPhone 但它适用于 iPad

iphone - iPhone 上的长双倍

java - 在 JSNI 中注入(inject)外部 javascript 代码