问题标签 [exc-bad-access]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4013 浏览

iphone - 在 iPhone 上使用 AVAudioPlayer 时崩溃

我正在尝试使用 AVAudioPlayer 快速连续播放一些声音。当我不那么频繁地调用声音播放函数以便在再次调用该函数之前完全播放声音时,应用程序运行良好。但是,如果我快速连续调用该函数(以便在播放之前的声音时播放声音),应用程序最终会在调用该函数约 20 次后崩溃,并显示消息“EXC_BAD_ACCESS”。这是该函数的代码:

正如另一个线程中提到的,我实现了以下委托函数:

但是在大约 20 次快速调用该函数后,该应用程序仍然崩溃。知道我做错了什么吗?

0 投票
1 回答
326 浏览

iphone - EXC_BAD_ACCESS NSArray of ManagedObjects(核心数据)

我的 iPhone 应用程序发生了一些奇怪的事情。我正在使用 Core Data 将数据存储在 SQLite 数据库中。我的应用程序启动后第一次尝试读取一个表以返回所有行以填充 UITableView,其中包含供用户选择的内容列表。如果他们选择了列表中的顶部项目,我会得到一个 EXC_BAD_ACCESS 异常。如果他们选择任何其他项目,一切似乎都很好。这是代码示例: Sport 和 Team 是 NSManagedObjects。sports 是使用 NSFetchedResultsController (fetchedObjects) 获取的 Sport 对象的 NSArray。我可以在 UITableView 中很好地显示对象列表(我对 cellForRowAtIndexPath() 调用使用相同的数组,没有任何问题

更新:它似乎只影响 NSArray 中的最后一条记录而不是第一条记录,直到它抛出 EXC_BAD_ACCESS 错误。在我再次重新启动应用程序后,问题消失了,代码按预期工作:(

0 投票
1 回答
425 浏览

objective-c - Bad Access Error in Cocos2D Game in SKD 4, but not 3

Yeah, so this one through me or a loop for a while until I figured out what was going on. With Apple releasing the final version of Xcode today, and iOS 4 coming out yesterday, I finally started to look into porting my apps to iOS 4.

So I downloaded the new SDK, and got to work. After working on my app a bit, imagine my surprise when I got a bad access error, (trying to talk to a deallocated object). I hate those errors, so hard to figure out what to do. So, I spent the last 45 minutes trying to find what object I had deallocated. I couldn't recall what I had changed, and the error messages weren't helping. I enabled NSZombies (Zombies!!!) and got this error:

Which is about as useful as it seems. I'm in Cocos2D, so I think something is being touched that no longer exists? But I couldn't find anything like that in my code. So, on a whim, I used my older version of Xcode. Compiled and installed it on the Simulator running iOS 3.0. Worked fine. Like a charm, just as I had made it.

So now, my question is, what's happening here. What is the difference between SDK 4 and 3 that would cause a Bad Exc Error? Any ideas? Or perhaps it's an issue with cocos2d and that needs to be updated?

Edit: I did some messing around and found that by removing this line of code:

Then it works. So it looks like the CCTargedTouch Handler is linked to my sprite (which is then removed when I touch it) and someone everything doesn't work out... However, I need the sprites to get removed (or at least disappear, but I want to be memory conscientious), so how can I do this?

Thanks!

0 投票
1 回答
1594 浏览

iphone - 在没有 NSZombie 的情况下追踪 EXC_BAD_ACCESS?

我已经花了两天时间,但我仍然找不到崩溃的原因。

我知道这与尝试访问已释放的对象有关,但我不知道哪个访问或哪个对象。

每当我谷歌试图找到 EXC_BAD_ACCESS 的来源时,人们建议使用 NSZombies。问题是当我启用僵尸(通过环境变量在 xcode 中或通过 ObjectAlloc 属性在仪器中)时,程序不会在通常发生的地方崩溃,并且僵尸不会报告任何内容(日志中没有任何内容,也没有任何标记仪器)。NSZombie 有什么我缺少的吗?

我尝试利用来自 xcode 的调试器和工具中的 ObjectAlloc 的一些信息,但所有信息都非常神秘,并没有真正帮助我。

我已将调试器设置为在objective-c 异常上停止。当它这样做时,这是显示的调用堆栈:

首先,'1 ??' 是怎么回事?? 问号是什么意思?其次,我怎么知道在我的代码中调用它的位置?所陈述的所有操作都太通用了(例如 UIView dealloc,但是哪个 UIView?在哪里?)。

此外,当异常发生时,它再次指向汇编代码,这对我没有任何好处,除非我要花费数小时试图弄清楚代码的作用。我知道一些组装,但必须更好的方法......对吗?

有什么方法可以让我获得有意义的信息,说明在异常发生之前我的代码中运行的最后一行是什么?

我尝试在周围散布一些 NSLogs 和断点,但这对我没有多大帮助,因为崩溃发生我从导航控制器弹出视图控制器之后。我放置断点的所有地方都可以很好地达到断点(崩溃后我找不到要中断的点)。只有当我在调试器中“继续”时才会发生异常。就好像崩溃发生在我的代码之外,所以我不知道在哪里处理它。

我查看了我的代码并仔细检查了我是否遵守所有内存管理规则(至少据我所知)。我确定这是非常微妙的东西,但我似乎无法找到它。

如果有人有任何想法如何在没有 NSZombie 的情况下找到此类错误,请分享。

谢谢。

0 投票
4 回答
5882 浏览

iphone - 在 iOS 4.0 上使用 SQLite (FMDB) 和线程时的 EXC_BAD_ACCESS

我正在使用 FMDB 来处理运行良好的数据库。该应用程序使用一个后台线程,该线程正在做一些工作并需要访问数据库。同时主线程需要在同一个数据库上运行一些查询。FMDB 本身有一个小锁定系统,但是,我在我的课程中添加了另一个。

仅当我的班级指示数据库未在使用时,才会执行每个查询。执行操作后,数据库将解锁。只要负载不太高,就可以按预期工作。当我使用在主线程上运行的线程访问大量数据时,会发生 EXC_BAD_ACCESS 错误。

这是外观:

调试器说错误发生[FMResultSet next]在该行

我仔细检查了所有保留计数,并且此时所有对象确实存在。同样,它只发生在主线程在后台线程运行时启动大量查询时(它本身总是产生沉重的负载)。错误总是由主线程产生,而不是由后台线程产生。

我的最后一个想法是两个线程同时运行lockedDatabase,这样它们就可以获得一个数据库对象。这就是我通过“@synchronized(self)”添加互斥锁的原因。然而,这并没有帮助。

有人有线索吗?

0 投票
1 回答
342 浏览

iphone - EXC_BAD_ACCESS 莫名其妙的错误

好的,这是我程序中的一种方法,它不断给出 EXC_BAD_ACCESS 错误并崩溃。我指出了下面的行。questionsShown 是一个读写属性,它指向一个 NSMutableArray,我在程序的较早位置初始化了一个容量为 99 的 NSMutableArray。当我调试时,就分配的属性而言,一切看起来都很正常。我认为内存管理肯定存在一些问题,但我很难找到问题所在。提前感谢您的帮助。

0 投票
1 回答
88 浏览

iphone - UINavigationController EXC_BAD

我在我的应用程序中使用 UINavigationController。在第一个视图中,我正在显示一些信息,并有一个用于从相机加载图片的按钮。到目前为止,这工作正常。加载图片后,我想在第二个视图中的 UIImageView 中显示图片。因此我使用以下代码。

加载第二个视图并显示图片。但是我在调​​试器控制台中收到一条 EXC_BAD_ACCESS 消息,并且我的应用程序阻止了 UI。

在第二个视图中,图片加载如下:

谁能告诉我,我做错了什么?我的笔尖文件看起来:

文件的所有者视图属性连接到视图。并且 imageView 属性连接到 ImageView。

谁能告诉我,我做错了什么?

BR,马丁

0 投票
2 回答
1427 浏览

iphone - NSUserDefaults 的内存问题

我花了几个小时试图让我的项目工作,但我就是无法让它工作。

基本上,我试图在用户点击保存按钮时使用 NSUserDefaults 保存自定义对象,并在应用加载时加载所有数据。如果没有保存以前的 NSUserDefault,我想设置一些默认值。最后,在尝试加载以前保存的 NSUserDefault 时,我得到了 EXC_BAD_ACCESS。在设置起始数据时,它在第一次加载时工作正常。问题是,当我尝试为它启用 NSZombieEnabled 和其他环境变量时,它会以某种方式在没有 EXC_BAD_ACCESS 的情况下正常加载。所以这就是我正在使用的:

[应用代理.h]

[应用代理.m]

[视图控制器]

[注.h]

[注.m]

我真的需要一些帮助,我很感激。

编辑:

顺便说一句,其他文件中也有一些行可以编辑 App Delegate 的 Note 对象,例如:

编辑:

这是调试器写的:

哪个是:

0 投票
2 回答
401 浏览

iphone - NSMutableArray Exc_Bad_Access

我只有这个代码在 m 中。文件

得到这个 [arrayOfBools addObject:ijk] 的错误;

0 投票
1 回答
818 浏览

iphone - 将 UITableViewController 推送到 [self navigationController] 会导致 EXC_BAD_ACCESS

在我当前的视图中,按钮 touch-up-inside 事件会导致以下操作:

(请注意,在调试器中,我已经验证了[self navigationController]和实例化的historyViewController确实存在。

我无法确定为什么会发生这种不良访问。我可以从导航控制器弹出/推送此视图/其他视图。关于如何着手调查为什么这个视图在被推到导航控制器时会出现问题的任何想法?

这是我的 HistoryViewController.h