我必须将我的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代码,我们不知道数组或字典中的元素 - 这使得代码的可读性大大降低。 (遗憾的是,更多信息更少的文字)
有没有办法在不引入大量(打字和执行速度)开销的情况下解决这个问题? 因为我有很多不同的大型结构。
答案 0 :(得分:1)
iOS代码可能不太适合您,因为您来自Android背景。如果您多年来一直在寻找这样的代码行,那就完全正常了。在另一个座位上,我查看Java代码在这种情况下发现它非常冗长。
如果您想要移植到iOS,在这种情况下您有两种选择:
选项1意味着,使用本机Cocoa框架,例如你已经尝试过NSMutableArray(顺便说一句,在你的例子中可能是NSArray)。
选项2表示使用C ++和C. STL允许您使用类似的变量,因为您觉得这很重要。
此外,这段代码让我对你在这里初始化的确切内容感到紧张。它是某种数据库吗?您可能想要查看CoreData。