我已经阅读了很多关于这个问题的内容,但我似乎仍然有所不同.所以根据我的理解,EXC_BAD_ACCESS会出现内存管理问题.
事情是,我的似乎不是(!:)).问题是,我简单地在IB中添加了一个按钮,圆角矩形,没有图像.我把它与我班上定义的IBACTION联系在一起.顺便说一句,这个方法什么都不做(!).
无论如何,只要我点击按钮,应用程序崩溃就会出现"EXC_BAD_ACCESS".
就我所知,我肯定不会过度释放任何东西.有什么问题?
有线索吗?
这是我的控制台日志:
Loading program into debugger…
sharedlibrary apply-load-rules all
Program loaded.
target remote-mobile /tmp/.XcodeGDBRemote-148-79
Switching to remote-macosx protocol
mem 0x1000 0x3fffffff cache
mem 0x40000000 0xffffffff none
mem 0x00000000 0x0fff none
run
Running…
[Switching to thread 11779]
[Switching to thread 11779]
(gdb) continue
2010-01-15 09:16:34.800 FlightControl1[1899:207] Table loaded
2010-01-15 09:16:35.200 FlightControl1[1899:207] 23
2010-01-15 09:16:35.350 FlightControl1[1899:207] debug
Program received signal: “EXC_BAD_ACCESS”.
(gdb)
Run Code Online (Sandbox Code Playgroud)
在我上堆栈之后,这就是我得到的:
#0 0x31ec3ebc in objc_msgSend ()
#1 0x33605784 in -[UIApplication sendAction:to:from:forEvent:] ()
#2 0x336056ec in -[UIApplication …Run Code Online (Sandbox Code Playgroud) 它看起来确实无害.在我的App Delegate中,我检查NSUserDefaults是否有标志以显示启动时的提示.如果它已设置,那么,在最后applicationDidFinishLaunching:,我这样做:
TipsViewController *vc = [[TipsViewController alloc]
initWithNibName:@“TipsView" bundle:nil];
[window addSubview:vc.view];
[vc release];
Run Code Online (Sandbox Code Playgroud)
这个想法是暂时显示这个观点.(请注意,它不是模态VC.此时没有导航控制器,而且此视图中没有导航栏.)
一旦这个视图被解除,我们将把我们先占的UITabBarController视图添加到窗口并转换到它,然后从主窗口中删除提示视图.我还没有达到解雇观点,因为,好吧,继续阅读.
我的TipsView的VC或多或少都是这样的:
UIView -> view -> File’s Owner (TipsViewController)
UIImageView -> background image
UIView -> tipView -> File’s Owner
UIImageView -> background image
UIScrollView
UILabel (tip text)
UIButton -> touch-up-inside -> -(IBAction)button1:
UIButton -> touch-up-inside -> -(IBAction)button2:
UIButton -> touch-up-inside -> -(IBAction)button3:
Run Code Online (Sandbox Code Playgroud)
源包含所有三个IBAction调用的声明和定义.现在他们两个什么都不做.第三个更改提示text,调整大小以适应,并调整滚动视图contentSize以匹配.
当我运行应用程序时,TipsViewController视图显示就好了.我甚至可以滚动提示文字.然而,当我在任何UIButton上触发内部触摸时,Xcode开始在源头(我在每个IBAction上放置一个断点)中植入我...然后用a EXC_BAD_ACCESS或者拯救 …