我在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];
另外,我是否必须将整数更改为字符串以将它们放入数组中?
答案 0 :(得分:4)
将NSArray更改为NSMutableArray。这将允许您添加和删除对象。
NSArray是一个在创建后不会被更改的数组。
NSMutableArray只是NSArray的一个子类,它有许多函数可以帮助你在数组中的任何一点添加和删除对象。
答案 1 :(得分:-1)
代码显示正确(从技术上讲,您应该使用+numberWithInteger:
而不是+numberWithInt:
,但它肯定不会导致崩溃。)您看到的崩溃是什么?你能发布GDB / Xcode的输出吗?