1

我必须将我的 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 代码,您不知道数组或字典中的元素 - 这使得代码的可读性大大降低。(不幸的是,更多的文字信息更少)

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

4

1 回答 1

1

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

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

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

选项 1 的意思是,使用本机 Cocoa 框架,例如您尝试过 NSMutableArray (顺便说一下,在您的示例中应该可能是 NSArray )。

选项 2 的意思是,使用 C++ 和 C。STL 允许您使用类型变量,因为您认为这很重要。

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

于 2013-02-13T09:39:09.177 回答