在我的应用程序中有4个textFields(0,1,2,3)。当用户键入内容并点击return-Key时,我想将此textField的内容保存在数组中。但我需要正确的订单。例如,当用户首先在textField 2中键入一些信息并且我调用addObject:
时,内容位于索引0.现在我尝试使用inserObjectAtIndex:
但它不起作用,因为我的数组为空( count = 0)。尝试initWithCapacity
也不是解决方案。我没有尝试首先用空字符串初始化数组,但这将是一个糟糕的解决方案。那我怎么能以聪明的方式解决这个问题?有什么建议??
答案 0 :(得分: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是更通用的方法。