在iphone和Apple手表之间共享课程

pra*_*awn 19 swift watchkit

我希望有人可以对此有所了解.我尝试过研究,却找不到任何东西......

有没有办法在iPhone应用程序和Apple Watch扩展程序之间共享一个类?

让我们说在手表扩展中我有一堂课myClass; 我无法在手机应用程序中使用此类.反正有没有绕过这个?

j-t*_*sha 38

iPhone应用程序和Apple Watch扩展程序是您项目中基本不同的目标.对于每个文件(.h文件除外),您可以指定要将其包含在哪个目标中.

至少有两种方法可以做到这一点.

1)从顶部菜单中选择View - > Utilities - > File Inspector.右侧面板将显示,您应该找到目标成员资格部分,其中包含您项目可用目标旁边的复选框.检查要包含此文件的目标.在这种情况下,iPhone应用程序和WatchKit扩展.

2)您也可以单击项目转到项目设置. 选择所需的目标.(即iPhone应用程序或WatchKit扩展程序),单击Build Phases选项卡.在"编译"源中,您可以单击" + "图标以添加要为目标构建的更多文件.(即你的情况下是myClass.m)

希望这可以帮助!


erp*_*ker 7

另一个可能的解决方案(最终解决了我的问题)是确保您的Watch Target也知道您的桥接文件所在的位置!

  • 打开项目设置并选择WatchKit扩展.

  • 在"构建设置"中,搜索关键字"桥接"

  • 确保已设置Objective-C桥接头文件 在此输入图像描述


Ste*_*son 6

有两种方法可以做到这一点。

  1. 使用您的共享代码创建一个框架,并将该框架链接到您的 WatchKit 扩展和 iPhone 应用程序。这是最干净且推荐的方式。

  2. 将 MyClass 的源文件(和依赖项)添加到您的 iPhone 和 WatchKit 扩展目标中。