NSString stringWithFormat:带C数组?

时间:2010-04-16 17:18:10

标签: c objective-c arrays

我正在编写一个计算雅可比算法的程序。它是用Objective-C编写的,因为它在Mac上运行,但大多数是用标准C编写的。我使用的是二维C数组和NSArray包含5个NSTextField标签。

以下代码产生EXC_BAD_ACCESS错误:

for ( int i = 0; i < 5; i++ ) {
     NSString *resultString = [NSString stringWithFormat:@"%g", matrix[i][i] ];
     [[resultLabels objectAtIndex:i] setStringValue:resultString]; // error line
}

任何帮助?

修改

这是我init resultLabels

的地方
resultLabels = [[NSArray alloc] initWithObjects:result11, result22, result33, result44, result55, nil];

3 个答案:

答案 0 :(得分:1)

如果您在该行上收到错误,则会释放resultsLabelsi处的对象。

答案 1 :(得分:1)

最有可能的是,您正在引用已发布的对象。您的NSArray或objectAtIndex:那时是否为零?你能展示实例化这些对象的线吗?

答案 2 :(得分:1)

这不是你的破坏者的来源,但%g格式代码是双打而不是整数;你想要%d。

数组中的项目将由数组自动保留(Foundation集合中的对象始终由集合保留),因此您不需要向它们发送额外的-retain消息。因此,似乎resultLabels可能会在崩溃发生之前的某个地方被释放。