2016-12-10 9 views
-1

の配列の特定のインデックスをループは、私はUINT8スプライシングとスウィフト3

指数2〜4を通じてIループを行う方法

let myArray: [UInt8] = [0xD0, 0xA4, 0xA3, 0xE0, 0xD1]

  1. の配列を持っていると仮定しますか?私は様々なforループが存在することを知っていますが、特定のインデックスを繰り返すことができるループがありますか?

  2. インデックス0,1,2のみを含む別の配列を作成するにはどうすればよいですか?

はインデックス2〜4を通じてIループを行う方法

+1

Swift 3では、「UInt8」ベースの、より汎用性の高い「データ」を使用することを検討します。 – vadian

+0

@vadian - hmm - 実際にはデータも使用していますが、データオブジェクトから特定のインデックスなどを抽出するにはどうすればよいですか?私は実際に 'Data'オブジェクトを持っていて、ループ、スプライシングなどのために' myArray'に変換しなければなりませんでした。 – ChicagoSky

+0

@ChicagoSkyまったく同じ方法です。 'myData [2 ... 4]'が動作します。 – matt

答えて

1

事前にありがとうございますか!このよう

let myArray: [UInt8] = [0xD0, 0xA4, 0xA3, 0xE0, 0xD1] 

for i in myArray[2...4] { 
    print(i) 
} 

にはどうすればいいだけ0、1、2をインデックス含む別の配列を作成できますか?

同様

let myArray: [UInt8] = [0xD0, 0xA4, 0xA3, 0xE0, 0xD1] 
let myOtherArray = myArray[0...2] 

...しかし、気を付ける:myOtherArrayは今スライス、ではない実際の配列です。必要に応じて、配列に強制することができます。

EDIT実際には、データオブジェクトがあります。表記は同じまま:

for i in myData[2...4] { // myData is a Data 
    print(i) 
} 
let myData2 = myData[0...2] 

アップルは(FoundationのNSDataのではなく)データ型を提供する理由は正確にすなわち、その上にあなた使用の配列表記するように。

+0

ありがとうございました - それは私が逃したものです – ChicagoSky

+1

私のオンラインブックはあなたを助けてくれました:http://www.apeth.com/swiftBook/ch04.html#_array_subscripting – matt

+1

データオブジェクトに同じ回答が追加されました。 – matt