初始化NSArray并向其添加NSInteger

时间:2010-07-06 02:13:50

标签: objective-c nsarray nsinteger

我在NSArray的初始化和添加整数时遇到了问题。这是我的代码,我在我想要完成的内容中评论过。我的应用程序在添加对象时崩溃,但我不知道,如果我正在清理数组。

//CREATE AND INITIALIZE AN ARRAY
NSArray *ticket;                                                        
ticket = [[NSArray alloc] init];

//slotA,slotB,slotC are of type NSInteger that I am trying to add
//to the array (THIS CRASHES)

[ticket addObject:[NSNumber numberWithInt:slotA]];
[ticket addObject:[NSNumber numberWithInt:slotB]];
[ticket addObject:[NSNumber numberWithInt:slotC]];

//I never got to this line of code but I think it has to be wrong
//because this would throw the whole //array away. I dont want it
//to be thrown away I just wanna clear it out but keep it instanciated.

[ticket release];

我尝试了这个,但它说我“错过了一个传入的函数调用”

NSArray *ticket;
NSString *sltA=[NSString stringWithFormat:@"%d", slotA];
NSString *sltB=[NSString stringWithFormat:@"%d", slotB];
NSString *sltC=[NSString stringWithFormat:@"%d", slotC];
ticket = [[NSArray alloc] initWithObjects:sltA,sltB,sltC];

另外,我是否必须将整数更改为字符串以将它们放入数组中?

2 个答案:

答案 0 :(得分:4)

将NSArray更改为NSMutableArray。这将允许您添加和删除对象。

NSArray是一个在创建后不会被更改的数组。

NSMutableArray只是NSArray的一个子类,它有许多函数可以帮助你在数组中的任何一点添加和删除对象。

答案 1 :(得分:-1)

代码显示正确(从技术上讲,您应该使用+numberWithInteger:而不是+numberWithInt:,但它肯定不会导致崩溃。)您看到的崩溃是什么?你能发布GDB / Xcode的输出吗?