我遇到了一個小問題。我有一個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中的對象,但該索引不存在。有沒有人知道解決方案,或甚至更好的方式來實現這件事?