我有一个UITableView
通过数组(tableArray
)填充的,它从核心数据中填充。
每个UITableViewCell
在创建时都被分配一个数字,并且这些数字存储在一个数组中。( numberArray
)
当用户重新排序行时,数字会在数组中移动(tableView
当然与
所以这里使用了两个 Mutable 数组。
保存的numberArray
数字(或顺序)TableViewCells
。我需要对包含UITableViewCell
's text ( tableArray
) 的数组进行排序,以反映所numberArray
包含的相同顺序。
另外,这很重要:正如我之前所说,每个单元格都分配了一个数字,这个数字存储在numberArray
,
我需要对两个数组进行排序以在同一位置保存相同的值。
例如:
tableArray
持有一些物品:
1) hi
2) whats Up
3) this
4) is cool!
如您所见,这里的每个对象都分配了一个数字 1-4。并且这些数字中的每一个都被添加到numberArray
.
用户可以移动单元格,因此显然数字的顺序会改变。
所以当视图加载时,我需要得到numberArray
它是否是的确切顺序
1,2,3,4 or 2,4,3,1
我需要排序以反映与
视图加载时tableArray
相同的顺序,如果顺序为 2、3、4、1,我希望将顺序设置为numberArray
numberArray's
tableArray's
2“whats up”、3“this”、4“很酷!”、1“hi”。
我相信我可以通过NSPredicate
.
任何帮助是极大的赞赏!
编辑
cellForRow:
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString * identifier = @"identifier";
self.myCell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (self.myCell == nil) {
self.myCell = [[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
HandgunAmmo *handgunAmmo = [self.tableArray objectAtIndex:indexPath.row];
self.myCell.brandLabel.text = handgunAmmo.brand;
self.myCell.caliberLabel.text = handgunAmmo.caliber;
self.myCell.numberOfRoundsLabel.text = handgunAmmo.numberOfRounds;
return self.myCell;
}
在我的viewWIllAppear
方法中:
-(void)viewWillAppear:(BOOL)动画{
if (self.context == nil)
{
self.context = [(RootAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
}
NSFetchRequest *request = [[NSFetchRequest alloc]init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"HandgunAmmo" inManagedObjectContext:self.context];
[request setEntity:entity];
NSError *error;
NSMutableArray *array = [[self.context executeFetchRequest:request error:&error] mutableCopy];
[self setTableArray:array];
[self.ammoTable reloadData];
[super viewWillAppear:YES];
}
因此,数组在更改时不保持持久性的原因是因为我从核心数据加载数据,并且我调用[self setTableArray:array];
它将核心数据中的所有数据重新加载到数组中,然后用数组填充表格视图。所以我需要能够array
在我设置它之前对它进行排序等于self.tableArray
。
感谢您的帮助!