我使用iPhone 3.x sdk编写了一个小应用程序。该应用程序在设备/模拟器3.x上运行良好。但是当我切换到设备/模拟器4时,当我在标签页之间导航时,它会直接退出。这是日志形式〜/ Library / Logs / CrashReporter,
异常类型: EXC_BAD_ACCESS (SIGBUS) 例外代码: KERN_PROTECTION_FAILURE 位于0x0000000000000003 Crashed Thread:0 Dispatch queue:com.apple.main-thread
特定应用信息: objc_msgSend()选择器名称:isKindOfClass: iPhone模拟器4.0(211.1),iPhone OS 4.0.2(iPhone / 8A400a)
线程0崩溃:调度队列:com.apple.main-thread 0 libobjc.A.dylib 0x02502a97 objc_msgSend + 27 1 UIKit 0x00303f20 - [UIView(内部)_didMoveFromWindow:toWindow:] + 955
你能否提前给我一些帮助。
林克卞 电子邮件/ MSN:linkou.bian@gmail.com答案 0 :(得分:3)
我写了这个blog to help understand and debug EXC_BAD_ACCESS
基本上,您正在取消引用指向未分配给进程的内存的指针。可能发生这种情况的主要原因是
你应该做的事情来调试这个:
进行构建和分析。泄漏的报告很糟糕,但与此问题无关 - 您希望查找保留太少的问题
开启Zombies and run in the debugger。现在,您的所有对象都不会被释放,但是当它们具有保留计数0时,如果您使用它们,它们会向调试器发出警告。
博客上还有其他一些难以解释的提示
答案 1 :(得分:-1)
我开发了具有实时无线电流的VUmeter功能。它运行良好,当我遇到模拟器版本4.0但在设备(3GS,4.0)它不工作我没有得到音频级别的更新值。假设第一次方法调用我得到了价值 级别:0.001817,peakLevels:0.005463保持不变不变,而在模拟器中相同的代码运行良好。
levels[0] = self.audioLevels[0].mAveragePower ;
peakLevels[0] = self.audioLevels[0].mPeakPower ;
建议或建议要求......