【发布时间】:2012-02-20 14:12:00
【问题描述】:
更新
对于旧版本的 Xcode,这是一个老问题。原来这个问题是 Xcode 中的一个 bug,已经修复。
原创
我有一个通过制作新标签 iPhone 应用程序(使用 ARC)生成的故事板
在我的一个选项卡中,如果我将手势识别器(任何,但我们说 Pan)拖到控件上,然后将选择器设置为一个操作,它就会在我转到选项卡时立即崩溃。
控制台中没有任何内容——它似乎在加载情节提要时发生(从未调用 viewDidLoad)。
- 我不知道如何获取更多信息
- 在不同的选项卡上,这工作正常。这两个标签都是自动生成的。
(可能我在视图中搞砸了一些东西,但我不知道我做了什么)。
如果我以编程方式制作手势,它们可以正常工作,但让它在情节提要中工作很好,而且我担心任何错误都会在某些时候以其他方式导致崩溃。
更多信息
在模拟器中我得到了
-[__NSCFString setView:]: unrecognized selector sent to instance 0x6d2db70
再次,需要调试技术——例如,有没有办法找出对象 0x6d2db70 是什么?
这与这个问题完全一样(没有答案):
Gesture recognizer in Interface builder crashes my app
更多信息
这很容易重现
- 新的 iPhone 选项卡式应用程序、ARC 和 Storyboard 开启
- 将点击手势拖到第二个选项卡的视图上(适用于第一个)
- 创建一个 (IBAction)
- 将手势的选择器连接连接到 #3 中的操作
- 运行,转到第二个选项卡
崩溃。我的应用也一样,默认选项卡有效,其他选项卡无效
【问题讨论】:
-
什么样的崩溃?信号? EXC_BAD_ACCESS?堆栈跟踪是什么?
-
就是这样——控制台什么都没有。堆栈跟踪回到释放池中的 main (所以感觉就像内存损坏)。需要获得更多信息的想法。
-
我做了很多 iPhone 调试,但对 4.2、ARC 等都是新手。我想要新技术的想法(我知道僵尸、调试 malloc 等——但他们不知道)似乎合适)。
-
指向 main 的堆栈跟踪通常表明抛出了异常。是否设置了异常断点?
-
除了设置识别器的目标和动作之外,它至少需要在一个视图的
gestureRecognizers出口集合中。您可以通过将识别器放在视图上来做到这一点。但如果它不在任何gestureRecognizers集合中,它应该是无害的。
标签: iphone objective-c ios interface-builder xcode-storyboard