2016-10-17 9 views
-3

Swift 3に更新して以来この問題がありました。 Swift 3stride(from:to:by:)を使用して更新しようとしましたが、Swift 3コードに古いSwift 2コードを実装することはできません。スウィフト3(ステートメント)のCスタイルの文が削除されました

for var i = 0; i <= self.senderArray.count - 1; i += 1 { 

    if self.senderArray[i] == userName { 

     self.other2Array.append(self.otherArray[i]) 
    } 
    else {  

    self.other2Array.append(self.senderArray[i]) 
    }    

    self.message2Array.append(self.messageArray[i]) 
    self.sender2Array.append(self.senderArray[i]) 

    } 

私は取得していますエラー:文の

C-スタイルは、私は以下のこの方法を試してみましたスウィフト3

で削除されました、私は私のコードが含まれている下にしかし、それは動作しません:

for i in 0 ..< self.senderArray.count 

誰もが重複としてこの問題をマークする前に私は次の質問を見てみましたが、なんらかの理由で、コードを更新したSwift 3コードに実装する方法がわかりません。インデックスを維持

#warning: C-style for statement is deprecated and will be removed in a future version of Swift

How to fix C-style for statement?

Fix warning "C-style for Statement is deprecated" in Swift 3

https://stackoverflow.com/questions/37814867/fix-c-style-for-statement-is-deprecated-in-swift

+2

ご質問は、あなたと一緒に更新しますr Swift 3に 'for'ループを書こうとしていて、あなたがどの問題を持っているのかを説明してください。 – rmaddy

+1

サンプルコードを見ましたか? – gnasher729

+0

どこでも 'self.'を使う必要はありません。それはちょうど可読性を低下させるだけです。 –

答えて

2

enumeratedと簡単です:

for (i, sender) in senderArray.enumerated() { 
    // Can simply use 'sender' here, no need to index into senderArray. 
    if sender == userName { 
     ... 

    // Unchanged lines; 'i' is used as index here. 
    self.message2Array.append(self.messageArray[i]) 
    self.sender2Array.append(self.senderArray[i]) 

} 
+0

ありがとう、グラハム!私はどこが間違っているのか分かります。私を助けてくれてありがとう! – Jordan

関連する問題