2016-06-28 2 views
5

私は、このクラスに検索 - スウィフト

class InboxInterests { 

    var title = "" 
    var eventID = 0 
    var count = "" 
    var added = 0 

    init(title : String, eventID : NSInteger, count: String, added : NSInteger) { 
     self.title = title 
     self.eventID = eventID 
     self.count = count 
     self.added = added 

    } 
} 

を持っていると私はこの

var array: [InboxInterests] = [InboxInterests]() 

のようにそれを使用するアイテムが欲しい

let post = InboxInterests(title: "test",eventID : 1, count: "test", added: 0) 
self.array.append(post) 

を追加します。 eventIDキーでインデックスを検索し、同じインデックスのaddedキーの値を変更する

これはどのように可能ですか?

答えて

11

使用フィルタと値を見つけるために最初:この中で

array.filter({$0.eventID == id}).first?.added = value 

をあなた:

  1. フィルタ
  2. は、最初の結果を選ぶイベントIDと一致する要素までの配列、もし任意

EDIT:スウィフト3では、あなたが自分で文字

私にとって
array.first({$0.eventID == id})?.added = value 
+5

それを交換するか、またはそれのeventIDを持つアイテムのすべてを行うために、インデックスを使用して、次に置き換えたいオブジェクトのインデックスを見つける最初でした{$ 0.eventID == id})。forEach {$ 0.added = value} ' – keithbhunter

+1

私は配列内の値がこのメソッドによって更新されない唯一の人です:(;( – user3804063

+2

配列の取得ができません$ 0は不変です。 – ChanWarde

2

のカップルを保存することができ、上記の答えは動作しませんでした。 ( `array.filter:だから、私がやったことは、私が新しい値で

if let row = self.upcoming.index(where: {$0.eventID == id}) { 
     array[row] = newValue 
} 
関連する問題