【问题标题】:Errors after importing Obj-C files through bridging header通过桥接头导入 Obj-C 文件后的错误
【发布时间】:2016-09-03 04:12:23
【问题描述】:

我正在尝试将 this 项目导入到我的 swift 项目中。我所做的是添加PanoromaView.hPanoromaView.m 文件,并将#import "PanoramaView.h" 添加到我的桥接头中。我还在我的项目中添加了 OpenGLES.framework 和 GLKit.Framework。

我现在收到错误提示

找不到“GLKView”的接口声明,超类 '全景视图'

未知类型名称'GLKVector3'

这是代码中错误的图像:

如果有人可以帮助解释我如何删除它们,那就太好了。

谢谢

编辑:

我也试过通过 Cocoapods 安装,还是一样的错误,很奇怪?

【问题讨论】:

  • 您需要导入 PanoramaView 所依赖的任何内容。您应该仔细检查这些文件的来源并严格遵守安装指南。
  • 没有安装指南,您可以在链接中看到。所以我试图自己解决这个问题,我被困在这一点上。我以为我已经导入了它所依赖的所有东西我不确定还需要什么?
  • 哦,好吧...这是一个吊舱。直接用 CocoaPods 安装? pod 'PanoramaView'
  • 我以前从未使用过 pod,但我也会尝试一下。谢谢
  • @nhgrif 我现在已经安装了 CocoaPods 但仍然遇到完全相同的错误?您能提供更多帮助吗?

标签: objective-c swift bridging-header 360-panorama-viewer


【解决方案1】:

为了让它工作,我不得不把它添加到PanoramaView.h

#import <GLKit/GLKit.h>

在 github 代码上建议的内容不适用于我。我还必须修改 ViewController:

import UIKit

class ViewController: GLKViewController {

    var panoramaView = PanoramaView()

    override func loadView() {
        panoramaView.setImageWithName("park_2048.jpg")
        panoramaView.touchToPan = true          // Use touch input to pan
        panoramaView.orientToDevice = false     // Use motion sensors to pan
        panoramaView.pinchToZoom = true         // Use pinch gesture to zoom
        panoramaView.showTouches = true         // Show touches
        self.view = panoramaView
    }

    override func glkView(view: GLKView, drawInRect rect: CGRect) {
        panoramaView.draw()
    }
}

这是我的示例应用:

https://github.com/melifaro-/Swift-PanoramaSample

希望对你有帮助。

顺便说一句,我没有使用 CocoaPods。我只使用PanoramaView.hPanoramaView.m 文件。

【讨论】:

  • 谢谢,这太棒了,正是我所需要的。我不确定您是否还可以进一步帮助我。我希望能够在视图而不是 viewController 中加载全景图?我知道我必须使用 GLKView,但是你有任何关于这方面的示例代码也会很棒。再次感谢
  • 是的,当然。这并不难。
  • 谢谢,我在哪里可以找到这个?
  • 不应该,但就是这样。我不得不修改 PanoramaView 类本身。你可以在 github 上查看我的示例。我已经在那里推送了更改。
  • 这不在 GLKView 内,这是在 GLKViewController 内?
猜你喜欢
  • 2014-07-29
  • 1970-01-01
  • 1970-01-01
  • 2016-09-03
  • 1970-01-01
  • 2015-09-14
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多