使用NSMutableString时应用程序崩溃

时间:2011-11-15 07:58:00

标签: objective-c nsmutablearray

在我定义的头文件中

NSMutableArray *numbers;

在实现中,我首先在init方法

中初始化此数组
numbers = [[NSMutableArray alloc] init];

我向这个数组添加字符串

[numbers insertObject:number atIndex:[numbers count]];

但是当我在另一种方法中访问这样的数组时

NSLog(@"%@", [numbers count]);

应用程序崩溃。知道为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

您的格式字符串与第二个参数的类型不匹配。

[numbers count]返回一个整数,而不是一个对象。

“%@”格式说明符表示相应的参数是一个对象,该对象将被发送一个-description消息。将插入从该消息表达式返回的字符串以代替“%@”。您的应用程序崩溃,因为它尝试向无效的接收方发送消息。

答案 1 :(得分:1)

你错了 -

NSLog(@"%@", [numbers count]);

数组计数是一个整数值。使用%d代替%@来打印整数。

NSLog(@"%d", [numbers count]);