我如何从核心的iOS代码中引用我的WatchKit扩展中的Swift类?

我试图让我的iOS应用程序每次从服务器更新数据时发送WatchKit扩展的一组数据。

这就是我的iOS应用程序中的代码(名称已更改)

[WatchKitDataModel loadDataFromSource: currentData]

但是,iOS应用程序不能识别WatchKitDataModel。

错误是“使用未声明的修饰符”。

请帮助我使我的应用程序彼此交谈!

确保您的违规课程已添加到“文档”面板中的App目标和WatchKit目标

在这里输入图像说明

图为一个TodayExtension,但原理是一样的。

要在您的WatchKit扩展程序及其包含的应用程序之间共享代码,请在您的应用程序中创buildembedded式框架。 框架是Apple推荐的工具,用于在应用程序之间和应用程序之间共享代码。

要在Xcode 6中创buildembedded式框架,请select您的项目,然后转到File> New> Target …然后在打开的对话框中selectiOS> Framework&Library> Cocoa Touch Framework 。 点击下一步 。 给它一个名字,SomethingKit,类似于苹果使用的,例如UIKit,HealthKit,WatchKit。 现在在你的新框架中的文件中创build新的类和其他通用代码。 当你想在你的任何其他目标,即WatchKit扩展或其包含的应用程序中使用它,不要忘记import SomethingKit

啊,不要忘了给你的框架中面向公众的类和function提供public 访问级别 。

有关框架共享代码的更多信息,例如,Frameworks中不能包含哪些内容,请参阅Apple的文章: 使用embedded式框架共享代码 。

此外,还有一个有趣的WWDC 2014会议video: Building Modern Frameworks 。