0

在我的应用程序中有 4 个文本字段(0、1、2、3)。当用户键入内容并按回车键时,我想将此 textField 的内容保存在一个数组中。但我需要正确的顺序。例如,当用户第一次在 textField 2 中键入一些信息并且我称addObject:内容位于索引 0 处时。现在我尝试使用inserObjectAtIndex:但它不起作用,因为我的数组为空(计数 = 0)。尝试initWithCapacity也不是解决办法。我没有尝试先用空字符串初始化数组,但这将是一个糟糕的解决方案。那么我怎样才能以聪明的方式解决这个问题呢?有什么建议么??

4

1 回答 1

2

我会使用一个包含四个NSNull对象的 NSMutableArray,并在您要保存字符串时替换相应的对象。

像这样的东西:

NSMutableArray *dataSource = [NSMutableArray arrayWithArray:@[[NSNull null], [NSNull null], [NSNull null], [NSNull null]]];

// check if object is set
if ([dataSource objectAtIndex:0] != [NSNull null]) {
    // object is set
    textField0.text = [dataSource objectAtIndex:0];
}
else {
    // object is not set
    textField0.text = nil;
}

// set object
[dataSource replaceObjectAtIndex:0 withObject:@"Foobar"];

由于您正在处理 NSStrings,因此您也可以使用空字符串@""作为占位符。这应该使一切变得更容易。但是用 NSNull 对象填充的 NSArray 是更通用的方法。

于 2013-06-08T18:33:18.273 回答