Objective-C语法问题

3

我在这里尝试了一些非常微不足道的东西,但是程序在NSLog中终止并显示“EXC_BAD_ACCESS”错误。我正在尝试将一个可变数组填充为多个类似于以下内容的字典:

NSMutableArray *_recipientsMutArray = [[NSMutableArray alloc] init];

NSDictionary *r1 = [[NSDictionary alloc] initWithObjectsAndKeys: @"firsValue", @"firstKey", @"secondValue", @"secondKey", nil];

[_recipientsMutArray addObject:r1];

[r1 release];

为什么?

2
这段代码没问题!问题肯定是其他地方。 - V1ru8
你说它在 NSLog 中崩溃,但你没有包含一个带有代码的 NSLog。 - Joshua Weinberg
我认为他的意思是控制台日志中报告了EXC_BAD_ACCESS。 - JeremyP
把堆栈跟踪信息发布出来,并告诉我们它在哪一行崩溃可能是个好主意。 - JeremyP
错误在于我在字典中使用了整数和布尔值作为值。为了简化示例代码,它们被移除了。随着这些更改,问题消失了。我很抱歉,并承诺将来会测试我的示例代码。感谢所有的帮助! - maralbjo
1个回答

2
您提供的代码很好,不应该导致“EXC_BAD_ACCESS”,但是您提到了使用“NSLog”时出现了崩溃。在使用“NSLog”时常见的错误是使用C风格字符串作为格式字符串,而不是使用“NSString”。以下代码将会出错:
int i = 4;
NSLog("%d", i); // oh no!

相反,您需要确保NSLog的第一个参数是一个NSString,像这样:

int i = 4;
NSLog(@"%d", i); // yay!

是的,我在那个问题上花了几个小时! - maralbjo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接