2017-05-28 7 views
-1

Objective CからSwiftへの私のアプリケーションの変換中です。私はこの例外を除いてすべての分野でうまくいっています。私の目的のCファイルでは、私は複数の選択を可能にするUITableViewを持っています。ユーザーがセルを選択すると、そのオブジェクトからの情報が配列に格納されます。ユーザーがセルを再度クリックすると、そのオブジェクトは削除されます。私はSwift 3でどのように動作するのか把握しようとしていますが、オブジェクトを追加することはできますが、配列からそのオブジェクトを削除する方法はわかりません。お知らせ下さい。以下は、私が変換しようとしているObjective Cのコードです。スウィフトと複数選択の変換Objective CからSwift 3へのDidSelectRowAtIndexPath

- (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]; 
    } 

答えて

0

、あなただけのそのindexを使用してArrayから項目を削除することができます。その配列の中にそのオブジェクトのインデックスを取得し、次にselectedRibbons.remove(at: index)を呼び出す必要があります。

たとえば、

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"] 
関連する問題