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。我感到惭愧,必须道歉。我所描述的似乎是不可能的,事实确实如此。导致问题的是下一行,当然,这两个例程中的这一行是不同的。但我还是被卡住了,所以我得再问一个问题。再次感谢。我可以采纳你的建议。