我遇到了一个小问题。我有一个UITableView与2个部分:文件夹和个别职位(墨水)。帖子被保存到NSMutableArray中,文件夹是包含帖子的数组的数组。当您点击编辑按钮时,每个单元格上都会出现复选标记框,以允许检查每个帖子。一旦选中一个项目,它将从inks
阵列中移除并移动到临时阵列中。在选择要将帖子移动到哪个文件夹后,将临时数组中的项目复制到其中一个文件夹数组中。我使用临时数组传输项目的原因是使用户不选中项目,这样它就不会从实际数组中移除。将对象从一个阵列传输到另一个阵列
-(IBAction)checkMarkSelected:(id)sender
{
if(numberTimesChecked%2==0) { //even times, check
[appDelegate.inksToFolder addObject:[appDelegate.inks objectAtIndex:[sender tag]]];
[tempArray removeObjectAtIndex:[sender tag]]; //tempArray is initialized with the contents of appDelegate.inks in the viewDidAppear method, so its just a duplicate
}
else //odd times, no check
{
[appDelegate.inksToFolder removeObjectAtIndex:[sender tag]];
[tempArray addObject:[appDelegate.inks objectAtIndex:[sender tag]]];
}
numberTimesChecked++; }
-(IBAction)moveToFolderPressed:(id)sender
{
NSMutableArray *arrayOfInks=[appDelegate.folders objectAtIndex:[sender tag]];
[arrayOfInks addObjectsFromArray:appDelegate.inksToFolder];
[appDelegate.folders replaceObjectAtIndex:[sender tag] withObject:arrayOfInks];
}
因此,我面临的问题是如果用户多次点击复选框,该怎么办。如果用户按下偶数次,则表示存在复选标记,如果出现奇数次,则没有复选标记,并且这些项目不应该被触摸。但是,当检查一个项目并且说这个项目位于inks数组中的索引4处时,该项目将被移动到索引0处的tempArray。如果它未被选中,它将如何知道从tempArray中删除项目的位置?因此,如果我检查索引4然后索引2然后索引7然后取消选中索引4,它将尝试从inksToFolder数组中删除索引4中的对象,但该索引不存在。有没有人知道解决方案,或甚至更好的方式来实现这件事?