需要在 NSMutableArray 的特定索引处添加文本字段内容
Need to add text field contents at specific index of NSMutableArray
我有这个代码:
NSMutableArray *customServicesArray = [[NSMutableArray alloc] initWithCapacity: 24];
PreferenceData *userPreferences = [PreferenceData MR_findFirstInContext: [NSManagedObjectContext MR_defaultContext]];
// fill the array with existing data (if any)
customServicesArray = [NSMutableArray arrayWithObjects: userPreferences.aCustomServices1, userPreferences.aCustomServices2, userPreferences.aCustomServices3, userPreferences.aCustomServices4, userPreferences.aCustomServices5, userPreferences.aCustomServices6, userPreferences.aCustomServices7, userPreferences.aCustomServices8, userPreferences.aCustomServices9, userPreferences.aCustomServices10, userPreferences.aCustomServices11, userPreferences.aCustomServices12, userPreferences.aCustomServices13, userPreferences.aCustomServices14, userPreferences.aCustomServices15, userPreferences.aCustomServices16, userPreferences.aCustomServices17, userPreferences.aCustomServices18, userPreferences.aCustomServices19, userPreferences.aCustomServices20, userPreferences.aCustomServices21, userPreferences.aCustomServices22, userPreferences.aCustomServices23, userPreferences.aCustomServices24,nil];
NSInteger indexSelected = [oCustomServicesPickerView selectedRowInComponent:0];
if(customServicesArray.count > (unsigned long)indexSelected)
[customServicesArray replaceObjectAtIndex:indexSelected withObject:textField.text]; // check to see max number of objects; might want to insert object then
else
[customServicesArray insertObject:textField.text atIndex: indexSelected];
我需要在特定索引处向 customServicesArray 添加元素;显然,如果数组为空,我所拥有的就不起作用。我试过 addObject 但由于缺少索引也不起作用。
我需要做什么才能使它按照我想要的方式工作?
改用NSMutableDictionary
。
customServicesDictionary[@(indexSelected)] = textField.text;
如果您知道最大可能值,您可以使用 [NSNull null]
或其他一些虚拟对象预填充您的数组。
或者添加一些这样的代码
NSInteger indexSelected = [oCustomServicesPickerView selectedRowInComponent:0];
while (customServicesArray.count <= indexSelected) {
[customServicesArray addObject:[NSNull null]]; // Here you can add some dummy object
}
[customServicesArray replaceObjectAtIndex:indexSelected withObject: @"textFieldText"];
我有这个代码:
NSMutableArray *customServicesArray = [[NSMutableArray alloc] initWithCapacity: 24];
PreferenceData *userPreferences = [PreferenceData MR_findFirstInContext: [NSManagedObjectContext MR_defaultContext]];
// fill the array with existing data (if any)
customServicesArray = [NSMutableArray arrayWithObjects: userPreferences.aCustomServices1, userPreferences.aCustomServices2, userPreferences.aCustomServices3, userPreferences.aCustomServices4, userPreferences.aCustomServices5, userPreferences.aCustomServices6, userPreferences.aCustomServices7, userPreferences.aCustomServices8, userPreferences.aCustomServices9, userPreferences.aCustomServices10, userPreferences.aCustomServices11, userPreferences.aCustomServices12, userPreferences.aCustomServices13, userPreferences.aCustomServices14, userPreferences.aCustomServices15, userPreferences.aCustomServices16, userPreferences.aCustomServices17, userPreferences.aCustomServices18, userPreferences.aCustomServices19, userPreferences.aCustomServices20, userPreferences.aCustomServices21, userPreferences.aCustomServices22, userPreferences.aCustomServices23, userPreferences.aCustomServices24,nil];
NSInteger indexSelected = [oCustomServicesPickerView selectedRowInComponent:0];
if(customServicesArray.count > (unsigned long)indexSelected)
[customServicesArray replaceObjectAtIndex:indexSelected withObject:textField.text]; // check to see max number of objects; might want to insert object then
else
[customServicesArray insertObject:textField.text atIndex: indexSelected];
我需要在特定索引处向 customServicesArray 添加元素;显然,如果数组为空,我所拥有的就不起作用。我试过 addObject 但由于缺少索引也不起作用。
我需要做什么才能使它按照我想要的方式工作?
改用NSMutableDictionary
。
customServicesDictionary[@(indexSelected)] = textField.text;
如果您知道最大可能值,您可以使用 [NSNull null]
或其他一些虚拟对象预填充您的数组。
或者添加一些这样的代码
NSInteger indexSelected = [oCustomServicesPickerView selectedRowInComponent:0];
while (customServicesArray.count <= indexSelected) {
[customServicesArray addObject:[NSNull null]]; // Here you can add some dummy object
}
[customServicesArray replaceObjectAtIndex:indexSelected withObject: @"textFieldText"];