【问题标题】:iOS - Adding Obj-C Files in Watch Extension causing ErroriOS - 在 Watch Extension 中添加 Obj-C 文件导致错误
【发布时间】:2016-07-04 12:48:04
【问题描述】:

我有一个项目(objective-c),我在 Swift 中添加了 WatchKit 应用程序。现在我想快速使用 Objective-C 类。我正在使用 Xcode 7.3

我创建了 Bridging Header,添加到 Swift Compiler 中的应用目标和监视扩展的 Build 设置中。

我面临的问题是,要访问 Objective-c 类,我必须将该类添加到 Watch Extension 的目标成员资格。一旦我编译器在 Watch Extension 中给出错误,但在我从未添加到 watch 扩展中的类中。就像我的主视图控制器给出错误,它无法找到继承它的 UIViewController 类。

错误是正确的,因为它正在为我从未添加到手表应用程序或扩展程序中的手表扩展程序编译它。

可能是什么问题?我如何解决这个突然出现的问题,因为我使用相同的方法在我的其他应用中添加了手表应用。

编辑: 这是我在未添加到扩展中的类上遇到的错误。

【问题讨论】:

  • 您意识到您的错误是正确的,并且您无法将 UIViewController 类添加到手表扩展中,那么这些objective-c 类中有什么?一个 UIViewController?我想是的。
  • 不,我从未添加过这些文件。我只是想添加从 NSObject 继承的单个 .m。那些 UIViewControllers 从未添加过,仍然在构建项目在 WatchKit Extension 中给出错误
  • 查看编译器产生的错误结果。它在哪个文件上表明 viewControllers 在错误的位置?确切的错误消息是什么?
  • @OwenHartnett 请检查我的编辑我添加了错误图像。那些 UIView 和 UIViewControllers 没有添加到扩展中,但它给出了错误。
  • 将 swift 文件从主项目添加到扩展中完全没有问题,但只要我添加 .m 它就会产生错误

标签: ios objective-c swift xcode7 watchkit


【解决方案1】:

我解决了导致文件出现在其他目标 (WatchKit) 中的问题。我已经创建了我的自定义 PCH 文件并将其手动添加到我的主项目中。

稍后当我创建新目标 (WatchKit) 时,它会自动复制 PCH 文件设置。现在添加到 PCH 文件中的类也正在为 WatchKit 编译,因此出现错误。

我花了一些时间,结果是一个简单的错误。

【讨论】:

  • 你能解释一下你是怎么解决的吗?我尝试删除 PCH 文件并添加 ifdef TARGET_OS_IOS 但两者都没有锻炼。我仍然面临同样的问题。
  • @Hassy 我还将一个 Swift 手表应用程序添加到一个 Objective-C iOS 项目中。我知道你只需选择 File -> New -> Target -> Watch App。但是我们必须手动添加桥接头文件还是 Xcode 会自动添加?另外我想我读到 iOS 目标和监视应用程序目标不能同名。它是否正确?例如MyAmazingApp + MyAmazingWatchApp?
  • Xcode 会自动为您创建 PCH 文件,出于某种原因您手动执行此操作,必须检查是否为 app + 扩展正确添加了该文件。每个扩展都是一个单独的目标。应用显示名称可以相同,但其捆绑标识符 + 分发配置文件是分开的。
猜你喜欢
  • 2021-12-26
  • 1970-01-01
  • 2014-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-26
相关资源
最近更新 更多