【问题标题】:GLKView in IB will cause crash when app is run without Xcode当应用程序在没有 Xcode 的情况下运行时,IB 中的 GLKView 会导致崩溃
【发布时间】:2019-07-24 19:41:18
【问题描述】:

我有一个应用程序在某些时候显示ViewController,其中包括GLKView。全部在情节提要中定义。 它工作得很好,也就是说,除非你从手机本身运行应用程序,而不是从 Xcode 中启动。在出现ViewControllerGLKView 时,应用程序立即崩溃。

Installed 复选框是勾选还是取消勾选 GLKView 都没有关系。只有当我将它从情节提要中完全删除时,它才不会崩溃。

有什么想法吗?

【问题讨论】:

  • 显示崩溃日志。

标签: ios objective-c xcode xcode-storyboard glkview


【解决方案1】:

我不知道为什么会发生这些事情,但我会认为它们是一个错误。直接从情节提要添加WKWebView 时会发生类似情况。这两种解决方案都非常简单:您需要做的就是为其导入模块。因此,在您的视图控制器中添加:

import GLKit

好像框架没有加载什么的。

使用ObjectiveC,问题似乎更深了。似乎必须手动导入该模块。转到您的项目设置。选择你的目标。选择“常规”。向下滚动到底部并找到“链接的框架和库”。在它下面找到一个“+”按钮并搜索“GLKit.framework”并添加它。这应该可以解决问题。

【讨论】:

  • ViewController 已经导入了 GLKit#import <GLKit/GLKit.h>
  • @Eric 抱歉,我错过了 Objective-C 标志。请看我的编辑。我也为 ObjectiveC 添加了一个解决方案。
  • 我自己也解决了,结果发现macOS的控制台可以很好地记录错误,错误指出GLKView是未知的,所以导入框架是有意义的。
  • 你知道为什么 1) 你不需要在 Swift 项目中导入框架,2) 即使没有导入框架,应用程序也可以在 Xcode 中运行?感谢您的帮助!
  • @Eric 我不知道,但如果我不得不猜测:1)Swift 有不同的隐式导入框架系统(在旧系统上这无论如何都不存在。你必须总是手动添加它们) 这似乎会扫描您的源文件中的导入。 2)当附加到调试器时,会发生很多魔术。在这种情况下,很可能会为您预加载大量框架。不过我同意这看起来很奇怪。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-21
  • 1970-01-01
  • 1970-01-01
  • 2023-02-23
  • 2015-03-10
  • 2015-08-30
相关资源
最近更新 更多