【发布时间】:2010-12-15 13:47:02
【问题描述】:
我使用 url 触发了三层 TTLauncherViewControllers: "tt://launcher/{number}" ...然后该类检查数字并基于该数字显示不同的启动器视图。例如,您可以从主屏幕单击“团队”,然后会弹出一个包含所有团队成员的新启动器视图。
由于某种原因,如果我单击某个东西并来回移动它会给我一个 EXC_BAD_ACCESS ...我无法弄清楚。关于为什么会这样的任何想法?
编辑:这是一个堆栈跟踪:
__gnu_cxx::__verbose_terminate_handler 中的 4 0x93f2afda
5 0x028e3333 in _objc_terminate
6 0x93f2917a in _cxxabiv1::_terminate
7 0x93f291ba 在 std::terminate
8 0x93f292b8 在 __cxa_throw
9 0x028e3481 在 objc_exception_throw
10 0x027956ab in -[NSObject(NSObject) doesNotRecognizeSelector:]
11 0x027052b6 在转发
12 0x02704e72 在 forwarding_prep_0_
13 0x005e983f in -[UIViewController _containsFirstResponder]
14 0x005fa906 in -[UINavigationController navigationTransitionView:didStartTransition:]
15 0x0078023e in -[UINavigationTransitionView 转换:fromView:toView:]
16 0x0077fbbf in -[UINavigationTransitionView 转换:toView:]
17 0x005f3ccd in -[UINavigationController _startDeferredTransitionIfNeeded]
18 0x00710b55 in -[UILayoutContainerView layoutSubviews]
19 0x00154481 in -[CALayer layoutSublayers]
CALayerLayoutIfNeeded 中的 20 0x001541b1
CA::Context::commit_transaction 中的 21 0x0014d2e0
CA::Transaction::commit 中的 22 0x0014d040
CA::Transaction::observer_callback 中的 23 0x0017debb
24 0x02774f4b 在 CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION
__CFRunLoopDoObservers 中的 25 0x02709b27
26 0x026d2ce7 在 __CFRunLoopRun
CFRunLoopRunSpecific 中的 27 0x026d2350
CFRunLoopRunInMode 中的 28 0x026d2271
GSEventRunModal 中的 29 0x031b600c
GSEventRun 中的 30 0x031b60d1
【问题讨论】:
-
我也有同样的问题!该错误没有比 EXC_BAD_ACCESS 更多的细节,而且看起来很随机,我并不总是在执行的同时拥有它。我曾尝试在我的代码片段中添加一些池以更好地管理 Autorelease,但它不起作用。