Class 可用于 iOS 和 WatchOS 应用程序?

Class available to iOS and WatchOS apps?

有没有办法创建 iOS 和 WatchOS 应用程序都可用的 class?

我想从单个静态 class 创建模拟数据源。我不希望 class 存在于 iOS 应用程序或 Watchkit 扩展中。但我还是希望它在整个项目中。

如果那不可能,我想最好让 class 住在 iOS 应用程序中?从那里,我可以将其数据传输到 WatchOS 应用程序。

勾选 "file inspector" 的 "target membership" 下的监视扩展选项,以将该文件包含在扩展名下:)

为您希望两个应用都使用的所有 类 创建一个框架,并在您想要使用它们时导入该框架

创建 类 后,您可以在文件检查器中编辑 "target membership" 作为提到的另一个答案,这样您就可以将文件包含在每个目标中。

此外,由于某些 类、函数等在 WatchKit 中不可用,您可能希望将 预处理器宏 添加到目标的构建设置中,您可以用于定义仅适用于 Watch 或 iPhone.

的代码部分

您可以在 iPhone 目标 'Build Settings' > 'Preprocessing' 中定义预处理器宏(确保选择左上角的 'all',而不仅仅是 'basic'). See screen shot for preprocessor macro definition

定义后,您可以使用#ifdef 预处理器在代码中使用它们:

#ifdef IS_IPHONE  
// iphone specific code here...
#endif

更新:

正如下面评论中提到的,对于 swift,您可以使用以下代码而不需要预处理器宏:

#if os(iOS)
// iPhone specific code
#endif