我遇到了在数组末尾添加"nil"的问题,出现了"NSInvalidArgumentException"错误?
NSMutableArray *k = [NSMutableArray arrayWithCapacity:10];
for (int i=0; i<9; i++){
[k addObject: @"blank"];
}
[k addObject: nil]; //<-- NSInvalidArgumentException
我需要在循环中逐个完成这些项目,然后添加“nil”。
谢谢
(然后我将使用此数组初始化二维数组。 问题是,如果我试图用不含“nil”的数组替换“replaceObjectAtIndex”,那么操作会失败。 如果我使用“initWithObjects:@”blank“,@”blank“,@”blank“,... nil“构建”k“,那么这将起作用。但是写1000个空格有点太多了。所以这就是循环的目的。)
////// 这里是试验和错误代码,用于初始化和构建二维矩阵,以便从“CSV文件”中读取和存储矩阵 //////
///*
NSMutableArray *ppp = [NSMutableArray arrayWithCapacity:2];
NSMutableArray *kkk = [NSMutableArray arrayWithCapacity:20];
NSNull *myNull = [NSNull null];
for (int i=0; i<9; i++) {
//[kkk addObject: [NSMutableString stringWithFormat: @"%d",i]];
[kkk addObject: myNull];
}
//[kkk addObject: nil];
[ppp addObject:kkk];
[ppp addObject:kkk];
//*/
/*
// this is successful --> just uncomment this block and comment out the block above
[ppp addObject:[[NSMutableArray alloc] initWithObjects:
@"z1",
@"z2",
@"z3",
@"z4",
@"z5",
@"z6",
@"z0gg",
@"z0hh",
@"z0ii",
@"z0jj",
nil
]];
[ppp addObject:[[NSMutableArray alloc] initWithObjects:
@"a1",
@"b2",
@"c3",
@"d4",
@"e5",
@"f6",
nil
]];
*/
[[ppp objectAtIndex:0] replaceObjectAtIndex:1 withObject:@"HOTDOG"];
[[ppp objectAtIndex:1] replaceObjectAtIndex:1 withObject:@"HOHO"];
// HOHO will replace HOTDOG as well for the code not using "nil"
initWithObjects
中,nil 不会成为数组的一部分。请检查我的答案。 - sidyllinitWithObjects: @"blank", @"blank", @"blank", ... nil
中,nil
不是 数组的一部分。 - sidyllinitWithObjects: @"blank", @"blank", @"blank", ... nil
中,nil 不是 不是 不是 数组的一部分。 - sidyll