を追加するときに、これは私にはどんな意味がないので、私は、スウィフトでどのようにフロー制御の作品の根本的な誤解を持っている必要があります実行されていません。は、私は内側のループ
//objects is of type [AnyObject]?
for obj in objects!{
let colors = obj.valueForKey("colors") as? NSMutableArray
if colors != nil{
for i in 0...colors!.count{
if colors![i] as? String != nil{
colors![i] = (colors![i] as! String).capitalizedString
}
}
obj.setValue(colors, forKey: "colors")
}
obj.save()
}//end for
私はforループの内側を削除すると、外側の1が正常に動作しますが、私は内側のループを追加するとき、それは外側のループの最初の反復を超えて取得することはありません。クラッシュや何もありません。他のすべては正常に再開します。
なぜこれが起こっている私は理解していませんよ。私はちょうど高密度で何かが明白でないのですか?
代わりに、私はおそらくちょうど私の配列内の文字列を大文字にマップ機能を書くことができますが、私はこれが動作しない理由を理解したいです。
予期しない動作の例を入力できますか? – Eiko
クラッシュはありませんが、クラッシュで終了しなければならない '0 ... colors!.count'には明らかなエラーがあります。あなたの答えはその問題を解決することを示唆しているので、私はそこにクラッシュがあると確信しています。 – Sulthan
@ Suulthan私もそう思っていましたが、それは遊び場で働いていたようです - NSMutableArrayではなくSwift Arraysを使用していたので、ループは決して実行されませんでした(colors = nil)。はい、明らかに間違っています。 :) – Eiko