2013-02-13 78 views
1

我必須將我的Android應用程序移植到iPhone,我想知道什麼是替代品 - 如果有的話 - 移植類型數組。移植從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

我認爲這是非常合理的,一個參數,採取一個名爲allNationalities數組可能包含民族對象。然後總是有評論,當然! – Mario 2013-02-13 09:29:18

回答

1

由於您來自Android背景,所以iOS代碼對您而言可能不太易讀。如果你多年來一直在尋找這樣的代碼行,這是完全正常的。在另一個席位上,我看着Java代碼在這種情況下發現它非常冗長。

如果你想移植到iOS上,你必須在這種情況下兩種選擇:

  1. 端口到iOS
  2. 不要港口到iOS

選項1種手段,使用原生Cocoa框架,例如你已經嘗試過NSMutableArray(例如順便說一下,你的示例中應該是NSArray)。

選項2表示使用C++和C. STL允許您使用類型變量,因爲您似乎覺得這很重要。

此外,這段代碼讓我擔心你到底在這裏初始化了什麼。它是某種數據庫嗎?你可能想看看CoreData。

+0

非常感謝您的評論 - 事實上我已經做了幾年的iPhone開發,但仍然沒有習慣它;-)我只是想知道是否有任何我錯過了。感謝您的有趣想法aboz C++ – user387184 2013-02-13 19:58:38

相關問題