23

我对 Thread 1: EXC_BAD_ACCESS (code=1, address=0xf00000c) 有问题,我不知道如何解决。当我更改核心日期中的某个对象并保存它并尝试将此控制器弹出到父级时,它出现了。此错误在带有 retVal 的 main() 中。这是一些代码

        int retVal;
    @try {
        retVal =  UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
           */\ error is here**
    }
    @catch (NSException *exception) {
        NSLog(@"%@", [exception callStackSymbols]);
        @throw exception;
    }
    return retVal;

重新运行应用程序后,我的所有更改都在核心数据中。更重要的是这个问题只在 iOS 7 上。iOS 6.1 是可以的。

有人知道如何解决吗?

4

9 回答 9

18

正如评论所说,此错误可能在您的代码中很深。如果罪魁祸首是僵尸,找到它的最简单方法是在分析器中运行它(最好在最新的 Xcode 中,目前是 Xcode 5,因为它已经过改进)并选择“僵尸”。当它失败时,您可以看到对象发生的所有事情的历史。

另外,设置异常断点。当错误发生而不是在异常被传递的 main 时,您可能会中断。

于 2013-10-04T14:49:53.970 回答
13

我用“僵尸”解决了这个问题,问题出在 [UIScrollView(UIScrollViewInternal) _notifyDidScroll]

我添加了

- (void)dealloc {

  self.tableView.delegate = nil;

} 

这个问题只出现在 iOS 7 中。

感谢帮助!

于 2013-10-07T11:26:42.790 回答
10

我仅通过调试源代码并重新分析我的逻辑来解决此问题。

下面是一些对我有很大帮助的参考。

EXC_BAD_ACCESS 意味着消息被发送到内存中没有类的实例来执行它的点。因此“访问不良”。

您将在 3 种情况下获得 EXC_BAD_ACCESS:

  • 对象未初始化
  • 一个对象已经被释放
  • 其他不太可能发生的事情

这已经是一个很好的起点。开始使用调试器,如果您最近向正在处理的类添加了一个新对象,请在第一次使用新添加的对象之前在该行放置一个断点并检查调试器中的值。

然而,最发生的事情是您将向过度释放的对象发送消息——即从调用堆栈中消失的对象。在这种情况下,您将在控制台中获得的所有内容(实际上是所有内容)都只是 :EXC_BAD_ACCESS

这是因为对象消失了,没有任何信息它是什么类,或者什么源文件或其他任何东西。

请尽量避免为此使用僵尸。

于 2015-06-12T07:07:22.173 回答
8

我只是遇到了完全相同的问题。

看了这里,一无所获,所以我开始回溯,直到我想,也许我应该尝试清理构建文件夹

我很高兴它就像 CLEAN BUILD FOLDER 一样简单!!!

产品- Clean Build Folder(⇧ ⌘ K)

于 2019-11-09T06:04:00.343 回答
3

EXC_BAD_ACCESS 表示没有类的实例来执行它。

有两种或多种可能性:

  1. 对象未初始化
  2. 一个对象已经被释放

请仔细调试应用程序并仔细分析每个对象。这可能会解决你的问题。

于 2016-01-21T09:14:50.273 回答
1

通过发现我的 NSString 变量之一的名称与框架的类变量之一具有相同的名称,我解决了同样的问题。花了几秒钟来更改名称,问题就消失了。

由于框架中有如此大量的类变量,很可能偶尔,每个程序员只是巧合地将其类中的某些变量命名为与框架类中某处使用的变量完全相同。所以在大多数情况下,它不一定是 Xcode 错误。

于 2014-09-17T23:28:57.120 回答
1

就我而言,我使用的是第三方库,但忘记在 Storyboard Identity Inspector 中设置自定义类名称

于 2018-09-07T04:49:10.570 回答
0

我今天可能还面临另一个问题:我有一个可变字典,其中包含非对象条目尝试。有一个向字典添加 BOOL 值的代码片段。所以难怪我得到这个错误=)。

于 2016-07-05T13:07:19.563 回答
0

就我而言,它试图在 print 语句中记录一个Int32with%s

于 2021-03-01T13:56:53.737 回答