2017-04-19 57 views

回答

0

如果你開始,目的是隻在將來使用SWIFT,那麼我將創建一個新雨燕的項目一個新的項目,然後鏈接到您的Objective-C的框架。這就是我們在我工作的地方所做的,隨着時間的推移,我們一直在慢慢地從Objective-C項目中刪除任何未被使用的東西。這可能不會比將所有內容導入到同一個項目中更快,但會使您的代碼與舊的Objective-C代碼分離。

+0

好的,感謝您的快速響應!但是,哪一種限制最少?最快的?但是,是的,就我們想要只有一個快速應用程序 – ExPl0siF

+0

我沒有找到我建議非常限制的方法。除了導入Swift項目中可能需要的任何頭文件外,這是一個相當快速的過程。但我認爲你應該考慮未來對你更好的方式,而不是最快的。將所有Objective-C代碼導入到新項目中可能會更快,但是在新項目中會遺留大量遺留代碼。 – totiG

+0

非常感謝。所以我們會用這些元素來思考,做出我們的選擇! – ExPl0siF

1

這是一個非常複雜的問題,答案是:取決於...... 我覺得有幾個問題回答你之前做:

  • 是您的項目「開放式」,你的團隊在相同的代碼基礎上開發新功能?或者有一個堅實可靠的代碼庫,只是一點點改變?
  • 您的公司是否可以用新工程技術完全在Swift中製造出「新版本」?

基本上,做一個大的重構(如語言遷移)涉及重新設計工作也一樣,如果你只是成績單代碼庫最事情不會工作,如果你這樣做,你失去所有的雨燕好處並且沒有Win情況來改變你的代碼。

在我看來,創建新項目只是一件好事,如果您要製作新版本的應用程序。更清潔,更好,但正如我所說,會有很多工作和重新設計。否則,只需將Swift代碼嵌入到Objective-C運行應用程序中,將導致很多麻煩和混亂。但速度更快,您可以繼續使用新功能並在您的應用上實施改進。

+0

非常感謝!現在我們將爲這個元素選擇最適合我們的方法! :) – ExPl0siF

1

所以,這是我的2美分到您的問題: 我會建議慢代碼轉換或重新構造Swift,如果需要新的代碼部分。 此外,如果轉換後的代碼當前正在其他項目(功能分支等)中使用,則無法確保它仍然會相應地工作。

我希望你有單元測試的地方,因爲那些可以使生活easiert。無論如何,考慮應用程序功能的迴歸測試方面。您使用的庫現在必須是框架(某些庫可能無法編譯爲框架,請注意這一點)。

如果你真的想轉換代碼庫,我會這樣做hirarchically。

  1. 考慮整個應用層,並在此層 特定的類。

  2. 開始寫測試這些類(你可以做,在斯威夫特,太),單元測試,集成測試,UI測試

  3. 將類的迅速類(注意,一些邏輯可能會改變並且其他功能也會受到影響)

  4. 實現橋接頭(如果需要),您可以將其用作應用層接口到其他接口 - 這甚至可以提高您對不同代碼部分一起玩的理解。如果你注意到一些奇怪的聲明。東西是公開的,太多的隨機訪問來自不同的課程或其他東西。不要觸摸它。事實上,注意下

  5. 執行你的小變化

  6. 的廣泛的測試

    下一個類從頭再來

  7. 如果所有的類都完成了當前的應用層和你分手罷了。做得好。現在看看你的筆記。

  8. 繼續下一層。

簡而言之:我只會將這些部分轉換爲需要改變的Swift(重構,新特性,錯誤,無論如何)。如果代碼正常工作,並且您看不到另一個原因而不是「很好,現在是Swift」,我只會考慮轉換,如果我真的有時間的話,否則您可能會破壞工作代碼甚至是架構,它在某些方面與Swift和Objective-C不同。

如果你真的覺得你是這樣的人:我會開始寫測試;-) 單位,集成和UI測試。這將有助於您使用CURRENT代碼庫,也可以幫助您使用未來的代碼庫,無論是在Objective-C還是Swift中。 這對於將代碼轉換爲Swift非常有幫助。

相關問題