2015-04-07 31 views
0

我有一個現有的應用程序,我添加了一個Watch應用程序。我有幾個.swift文件,其中包含我的主應用程序中的代碼,我需要使用watchkit應用程序(函數和一些常量等)。我很困惑的分享這個代碼的選項 - 我怎麼知道哪一個嘗試和使用?Watchkit - 共享代碼 - 框架,應用程序擴展,應用程序組,添加目標或僅複製文件?

創建一個應用程序組,我自己的框架,應用程序擴展?我實際上開始只是將.swift文件複製到我的watchkit應用程序文件夾中,並注意到當您在出現的對話框中向Xcode添加文件時,您會看到「添加到目標」複選框,以便讓我思考 - 有沒有隻需在主應用程序部分更改我的.swift文件的屬性,然後在「添加到目標」處勾選WatchKit應用程序?

這似乎是將要走的路,對吧?

感謝您的幫助

回答

3

我解決了,只需點擊文件並將它們添加到兩個目標中。 (iphone應用程序目標和Apple手錶擴展目標)。

要解決我用這個sharedapplication問題:

#if (SL_TARGET_APP_EXTENSION == NO) 
    [[UIApplication sharedApplication] ..... 
#endif 

SL_TARGET_APP_EXTENSION是在蘋果手錶擴張對象增加了預處理宏。

希望它有幫助。

+0

我正在嘗試這個,並在我添加到手錶擴展目標中的一個文件中遇到以下這行代碼: let appDelegate = UIApplication.sharedApplication()。delegate as AppDelegate - 它給了我錯誤「sharedApplication()不可用:在適當的地方使用基於視圖控制器的解決方案。我正在閱讀關於這個..bah –

+0

我更新了答案 –

+0

所以我想這意味着你的應用程序,你不需要sharedApplication手錶應用程序?如果我需要該功能,該怎麼辦? –

1

要共享一個蘋果的手錶應用程序,您的主應用程序之間的代碼,你需要創建與共享代碼的框架。你自己說,一個蘋果手錶應用程序是一個全新的目標 - 它不會蹲在你現有的代碼上。

創建應用程序組,您還可以使用initWithSuiteName共享NSUserDefaults:,對於Coredata,您可以轉到共享容器路線。

+0

好的,問題 - 謝謝。爲了幫助我理解 - 爲什麼我不能將watchkit擴展添加到文件的「Target Membership」中? –

+0

不用關心這個評論問題,我現在明白了 - 你是對的。我只是沒有所有的東西。非常感謝你。 –

相關問題