2016-11-21 3 views
0

オブジェクトの配列の対応するプロパティに整数値の配列を割り当てたいと思います。Swiftのオブジェクト配列の対応するプロパティにint配列を割り当てる方法は?

class MyClass { 
    var propint: Int = 0 
    var propdbl: Double = 0.0 
    var propstr: String = "" 
} // MyClass 

var arrint: [Int]() 
var arrobj: [MyClass]() 

一つのアプローチは、整数のアレイ(arrint)をループし、対応するオブジェクトの配列要素のプロパティpropintに値を割り当てることになります。

もっと効率的で洗練された解決法があるかどうか、私は疑問に思います。 array.mapのように、もしそうなら、これはどのように見えるでしょうか。

--Sil68

+0

実際、 'map'、' sort'、 'filter'はすべてループです。また、コードをきれいにすることはできますが、安全コードのためにパフォーマンスはほとんど悪化します。あなたの質問に合った良い方法があるかどうかは分かりません。 – Ryan

答えて

0

私は、効率的なについてはよく分かりません。 @ Ryanは、すべての組み込み関数メソッドは配列を処理するためにループを使用するだけだと述べています。

あなたはしかし、ここで注意しなければならない

let updatedObjectArray = zip(arrint, arrobj).map { 
    number, object -> MyClass in 

    object.propint = number 
    return object 
} 

...あなたはこのような何かを行うことができ、と述べました。クラス(構造体ではありません)を使用することにより、誤って元の配列を編集することになります。

とにかく、これは両方の配列をジップアップし、それらを反復して、更新されたオブジェクトを持つ配列にマップします。

注:変数にはより良い名前を選択してください。スタックオーバーフローの質問でさえ。 arrintまたはarrobjまたはpropintのような変数名を使用すると、2つのことだけが実行されます。自動修正がそれらをすべて変更したいので、質問に返信するのを難しくします。また、読んだときに理解しにくいようにしてください。私はそれがプロパティとint(コードが言うことです)であることを知っています。名前は私に教えてくださいWHYそれはプロパティとintです。

関連する問題