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

时间:2015-01-15 17:22:04

标签: ios objective-c swift watchkit

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

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

[WatchKitDataModel loadDataFromSource: currentData]

但是,iOS应用程序无法识别WatchKitDataModel。

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

请帮助我让我的应用程序互相交谈!

2 个答案:

答案 0 :(得分:8)

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

enter image description here

图片显示了TodayExtension,但原理是相同的。

答案 1 :(得分:1)

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

要在Xcode 6中创建嵌入式框架,请选择您的项目并转到文件>新>目标... 然后在打开的对话框中选择 iOS>框架&图书馆> Cocoa Touch Framework 。点击下一步。给它起一个名字,SomethingKit,类似于Apple使用的名称,例如: UIKit,HealthKit,WatchKit。现在,在新框架内的文件中创建新类和其他常用代码。如果您想在任何其他目标中使用它,即WatchKit扩展程序或其包含的应用程序,请不要忘记import SomethingKit

啊,不要忘记将public access level提供给框架中面向公众的课程和功能。

有关用于共享代码的框架的更多信息,例如,框架中不能包含哪些内容,请参阅Apple的文章:Using an Embedded Framework to Share Code

还有一个有趣的WWDC 2014会话视频:Building Modern Frameworks