Xcode 7.3:应用程序委托无法访问自己的对象,上下文声称捕获了一个Objective-C对象,但self不可用。

9
在 MacOS 10.11.3 和 10.11.4 上的 xcode 7.3 中,当我停止任何应用程序委托方法中的调试器并尝试检查在应用程序委托中实例化的任何对象,甚至是应用程序委托本身时,调试器会出现此警告:
 error: warning: Stopped in a context claiming to capture an Objective-C object pointer, but 'self' isn't available; pretending we are in a generic context

 error: member reference type 'AppDelegate *const' is a pointer; did you mean to use '->'?

 error: incomplete definition of type 'AppDelegate'

 note: forward declaration of 'AppDelegate'

 error: 2 errors parsing expression

这一次我在应用程序委托的“application:didFinishLaunchingWithOptions:”方法中,但是在应用程序委托的任何方法中停止,无论在运行应用程序的任何时刻,尝试查看任何应用程序委托对象时都会出现相同的错误。这种情况不会发生在Xcode 7.2中。我注意到在7.2中,应用程序委托的“self”被列为(AppDelegate *),而在7.3中它是(AppDelegate *const)。在7.3中点击应用程序委托的“self”旁边的披露箭头不会显示任何内容,而在7.2中会显示。这在模拟器和实际设备上都是如此。有什么想法可能出了什么问题吗?August

我也遇到了这个问题。有人说这是Xcode的bug。我在另一台电脑上重新安装了Xcode,但仍然不起作用。 - frank
但在我的情况下,如果您更新项目。 一切都很好。也许Xcode项目出了问题。 但我已经检查了构建设置,一切似乎都很好。这让我感到困惑!我已经花了将近5个小时来解决这个问题!但是失败了!我不得不将我的Xcode版本还原到7.2.. - frank
我有一个相同的问题,使用Swift VC从storyboard实例化后,在viewdidload被调用之前尝试从外部访问IBOutlet。在Objective-C中,相同的事情可以工作。 - Cristi Băluță
2个回答

6
在构建设置中,尝试将 Precompile Prefix Header 设置为 NO

6

我在使用 Object C(未测试过 Swift 2)时也遇到了问题。我尝试将命令行工具降级至 7.2.1,但并没有起作用。之后,我尝试使用“[]”而非“.”来访问属性。这样做就成功了 =))。

例如:

 [Restaurant name]

代替
Restaurant.name

更新:发现另一种方法来修复这个 object C 项目中的 bug。

Xcode 7.3 调试器无法显示自定义类变量

希望这有所帮助。


1
我已经找到了问题所在。我在pch文件中引入了应用程序代理的头文件,以使代理全局可用。 在以前的XCode版本中,这是有效的。但在7.3中不再有效。因此,我从pch文件中删除了该头文件,现在又可以查看代理对象了。 - August

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接