配列にクラスのインスタンスがある時、そのインスタンスのプロパティを検索し
ある条件があれば削除したいです。
実行できませんがこんな感じがしたいです
class Product : Identifiable{ var id:String! var name :String! var imageURL:String! var quantity :Int! }
//配列の中のインスタンスの要素idと新たに追加しようとしたインスタンスのidが同じなら消去して入れ直す. //(入れ直す時はquantityが違う値になっているので) array.filter({$0.id == product.id}).remove(at: )
用途例
struct Hoge { var selectedProducts = [Product]() var product:Product var body: some View { VStack{ ZStack{ Button(action: { //追加ボタンをタップした時 if self.product.quantity == 0 { self.product.quantity += 1 //ここで同じボタンを複数クリックする同じ物が入ってしまうのでproduct.idが同じ物がある時は //それを削除し新たに追加すると言う処理を入れたいです。 self.selectedProducts.append(self.product) //以下省略 }
調べたところ,swiftには要素を指定して削除できないらしいので下記の方法を取ったのですが
ソースの諸事情によりEquatableが入れられないので他に良い方法はないでしょうか。
https://qiita.com/fuziki/items/e8b1bb5b2dc8c8f43041
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/04 08:21