0

我正在开发一个使用导航控制器的应用程序。当我构建时,我没有收到任何错误或警告。我myMethodFirstViewController.m文件中定义了一个方法,然后在viewDidLoad我用[self myMethod];.

当我从控制台构建并运行时,我什么也没得到。所以我把NSLog()这样的陈述:

-(void) viewDidLoad {
NSLog(@"Entering viewDidLoad");
[self myMethod];
NSLog(@"Called myMethod");
[super viewDidLoad];
}

控制台从不返回第二个 NSLog 语句,这让我相信应用程序在调用该方法时崩溃了。

我已经尝试将模拟器设置为 iOS 4.0.1 和 iOS 4.1。我正在针对 iOS 4.1 SDK 构建。我非常感谢您提供的任何帮助。

更新:我运行了调试器,这似乎表明问题存在于myMethod. 在收到“EXC_BAD_ACCESS”之前,我只通过该方法中的几行代码完成它。代码行是:

-(void)myMethod {
NSMutableArray *someStuff;
NSMutableArray *someMoreStuff;

stuffSections=[[NSMutableArray alloc] initWithObjects:@"Some Stuff",@"Some More Stuff",nil];

someStuff=[[NSMutableArray alloc] init];
someMoreStuff=[[NSMutableArray alloc] init];

[someStuff addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Item Name",@"name",@"Item Picture.png",@"picture",@"http://theurl.net/",@"url",@"1",@"itemCode",nil]];

但似乎我无法通过第一次尝试向someStuff数组添加一些东西。

4

3 回答 3

0

在初始化 someStuff 和 someMoreStuff 时,您错过了分配。它应该是

   someStuff = [[NSMutableArray alloc] init];
   someMoreStuff = [[NSMutableArray alloc] init];
于 2010-11-08T16:49:30.200 回答
0

您是否交叉检查了两个 MutableArrays?是否已成功分配?当应用程序进入损坏状态(通常是由于内存管理问题)时,您会收到“ EXC_BAD_ACCESS ”。我猜数组没有分配。

尝试以这种方式分配。

NSMutableArray * someStuff = [[NSMutableArray alloc]initWithCapacity:3];
NSMutableArray * someMoreStuff = [[NSMutableArray alloc]initWithCapacity:3];

在调试区添加断点,确认是否分配成功。如果每个数组都有内存,则分配它们。

于 2013-02-28T10:38:05.933 回答
0

看起来“myMethod”中存在问题。如果我不得不猜测,我会说您正在尝试引用一个自动释放且未保留的对象。

于 2010-11-08T06:07:23.167 回答