2012-03-09 76 views
2

我在iOS項目中有一堆代碼(名爲「MyLibs」),我在不同的應用程序中重複使用。我將MyLibs項目拖放到我創建的任何應用程序的工作區中。我本身不使用單元測試,但是我有按鈕,而非iPhone應用程序中的所有測試。哪個項目模板應該用於iOS和Cocoa庫?

我正在學習Cocoa並希望將我的庫分成libs我可以在兩個項目上使用。我想這將是MyCommonLibs(或MyFoundationLibs),MyIOSLibs和MyCocoaLibs。

但是,創建新項目時,我必須在iOS應用程序或Cocoa應用程序之間進行選擇。它看起來好像iOS框架和庫 - > Cocoa Touch靜態庫是合適的,因爲它與Foundation框架鏈接。另一方面,如果沒有重大缺陷,我寧願使用應用程序模板。

我需要能夠在這兩種應用類型使用MyCommonLibs,因爲他們中的一些是兩者,如NSArray的類別等有用。

我應該使用哪個模板的MyCommonLibs,我必須使用庫,框架(在Mac OS模板中),還是我可以使用普通的應用程序模板(就像我迄今爲止所做的那樣)?

+1

項目是否MyCommonLabs只是爲您打算重新使用在各種實際項目中的一些代碼容器?在這種情況下,您可以簡單地使用iOS/other/empty。如果你想用它作爲一個satic庫,並把它作爲你的真實項目中的框架(不僅僅是創建代碼的本地副本,而且真的共享相同的代碼),那麼你應該使用iOS/Framework&Library/Cocoa touch靜態庫。 – 2012-03-09 21:05:33

回答

2
  1. 創建iOS框架&庫項目。我們稱之爲TestLib

  2. 添加MAC OS X Framework &庫的新目標(文件>新建>目標)。

這樣,您可以從同一個項目中編譯iOS庫和MAC OS X庫。

您可以選擇哪些文件包含在每個目標中。因此,如果您想爲iOS和MAC OS X創建一個類,則可以將它添加到兩個平臺上,並且如果您希望只將其用於一個平臺,則可以將其添加到僅一個lib。

正如您在下面的屏幕截圖中看到的,SharedClass可在兩個庫中使用,iOSOnlyClass僅適用於iOS,MACOnlyClass僅適用於MAC OS X.

enter image description here

enter image description here

您也可以在同一個項目中添加目標單元測試。

要組織代碼,可以將共享類放入組中,並將每個目標的類放入單獨的組中。

enter image description here

+0

當我在一些文件中爲iOS編碼並在其他編碼中編碼Cocoa時,XCode不會投訴嗎? – TigerCoding 2012-03-09 21:14:34

+0

另外,我會爲第二個目標使用「Cocoa Framework」還是「Cocoa Library」? – TigerCoding 2012-03-09 21:19:21

+0

「你可以使用方便的類型」嗯,我會在哪裏找出哪一個更方便? ;)我只是想將這些文件包含在其他項目中,但我希望能夠在這個項目中測試它們。 – TigerCoding 2012-03-09 21:35:58

相關問題