2017-05-28 3 views
-1

Ich bin dabei, meine App von Objective C in Swift zu konvertieren. Mir geht es mit Ausnahme in allen Bereichen gut. In meiner objektiven c-Datei habe ich eine UITableView, die mehrere Auswahlen erlaubt. Wenn der Benutzer eine Zelle auswählt, werden Informationen von diesem Objekt in einem Array gespeichert. Wenn der Benutzer erneut auf die Zelle klickt, wird das Objekt entfernt. Ich versuche herauszufinden, wie das in Swift 3 funktioniert, und ich kann das Objekt hinzufügen, aber ich kann einfach nicht herausfinden, wie ich dieses Objekt aus dem Array entfernen kann. Bitte beraten. Unten ist mein Code von Objective C, den ich zu konvertieren versuche.Mehrfachauswahl konvertieren DidSelectRowAtIndexPath von Objective C in Swift 3

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     RibbonsInfo *ribbonsInfo = [ribbonsArray objectAtIndex:indexPath.row]; 
     UITableViewCell *cell = [ribbonTableView cellForRowAtIndexPath:indexPath]; 
     if (ribbonTableView.allowsMultipleSelection == YES) { 
      if(cell.accessoryType == UITableViewCellAccessoryNone) { 
       cell.accessoryType = UITableViewCellAccessoryCheckmark; 

       [selectedRibbons addObject:ribbonsInfo]; 

      } 
      else { 
       cell.accessoryType = UITableViewCellAccessoryNone; 
       [selectedRibbons removeObject:ribbonsInfo]; 
      } 
     } 
     [tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    } 

Antwort

0

Mit Swift, können Sie nur Objekte eines Array entfernen, indem seine index verwenden. Sie müssen also den Index dieses Objekts innerhalb dieses Arrays abrufen und dann selectedRibbons.remove(at: index) aufrufen.

Zum Beispiel.

var array = Array<String>() 

array.append("apple") 

array.append("banana") 

array.append("orange") 

print(array) // ["apple", "banana", "orange"] 

if let index = array.index(of: "banana") { 

    array.remove(at: index) 
} 

print(array) // ["apple", "orange"] 
Verwandte Themen