Objective c 从文件中读取的重用代码只会在第二个类中导致EXC_BAD_访问

Objective c 从文件中读取的重用代码只会在第二个类中导致EXC_BAD_访问,objective-c,cocoa,nsmutablearray,exc-bad-access,Objective C,Cocoa,Nsmutablearray,Exc Bad Access,我在两个不同的文件中使用此代码,从文本文件中的文本字符串填充categories数组,其中条目由双管道分隔 在第一个文件中,我的appViewController类,一切正常。在第二个,popoverViewController,程序在arrayWithArray:行上使用EXC\u BAD\u访问进行轰炸。类别、临时数组、磁盘文件和文本文件的声明在两个接口文件中都是相同的 NSLogtracer和breakpoints变量的确认值一直到最后一行都是相同的。popover包含一个选择器,因此选择

我在两个不同的文件中使用此代码,从文本文件中的文本字符串填充
categories
数组,其中条目由双管道分隔

在第一个文件中,我的
appViewController
类,一切正常。在第二个,
popoverViewController
,程序在
arrayWithArray:
行上使用EXC\u BAD\u访问进行轰炸。
类别
临时数组
磁盘文件
文本文件
的声明在两个接口文件中都是相同的

NSLog
tracer和breakpoints变量的确认值一直到最后一行都是相同的。popover包含一个选择器,因此选择器委托和数据源协议已就位。这是唯一的区别。有人能解释一下可能发生了什么吗

categories=[[NSMutableArray alloc] init];

tempArray = [[NSMutableArray alloc] init] ;

NSMutableString *textFromFile=[[NSString alloc] init];  

NSString *filePath = [[NSBundle mainBundle] pathForResource: @"Categories" ofType: @"txt"];

if (filePath) {
  textFromFile = [NSString stringWithContentsOfFile:filePath];

  categories=[NSMutableArray arrayWithArray:[textFromFile componentsSeparatedByString: @"||"]];
}   
在调试器中设置和。然后,当应用程序崩溃时,在gdb控制台中键入以下内容:

(gdb) info malloc-history 0x543216
0x543216
替换为导致崩溃的对象的地址,您将获得一个更有用的堆栈跟踪,它将帮助您确定代码中导致问题的确切行


能否添加崩溃堆栈跟踪?我还要在你所有的财产前面加上“自我”;如果它们被定义为“保留”或“强大”,那么它也会为您保留它们。EXC_BAD_访问通常发生在(我)尝试访问已发布的项目时。让我讨厌的是,你声称在一个不同的文件中有相同的代码,而这个文件确实有效。。。。因此,日志请:)或点击Xcode 4中的Cmd-I来配置工具,选择僵尸工具,并以更高的逼真度(包括malloc历史)可视化问题。谢谢,chown。我感到惭愧,必须道歉。我所描述的似乎是不可能的,事实确实如此。导致问题的是下一行,当然,这两个例程中的这一行是不同的。但我还是被卡住了,所以我得再问一个问题。再次感谢。我可以采纳你的建议。