2016-10-05 9 views
2

Swiftは、Data[UInt8]の両方のタイプを提供します。これは非常によく似ています。データvs [UInt8]

  • 2つの違いは何ですか?
  • 新しいAPIを設計するときは、どのようなタイプが好ましいでしょうか?
  • +1

    私は 'Data'(〜' NSData')はオブジェクトであり、有用なメソッドをたくさん提供しています。しかし、あなたがそれらを必要とするかどうかによって異なります。 – Larme

    答えて

    3

    [UInt8]は本質的にバイト配列で、バイト(私が知っていると思いますが)は8ビットで構成されています。 NSDataは単なるバイト配列ではありませんが、基底構造は深いものです。たとえば、data.bytesなどの方法を使用して簡単に変換できます。

    APIを設計する上で、単純なバイト配列で提供されるすべての追加機能のために、NSDataを使用して設計することをおすすめします。アップルはすでにあなたのために多くの訓練を行っています。だから、なぜあなた自身が再びそれをやりますか?

    +0

    「データ」は、ObjCの部品とのインターフェースとして使用することを推奨していますか?あなたは 'Data'と' [UInt8] 'を使う人気のあるライブラリを持っていますか? – Etan

    +0

    ObjCの部分を使用しないLinuxアプリケーションはどうですか? 'データ'はそれらに人気がありますか? – Etan

    +0

    NSDataは単にバイナリデータを表すiOS/OSXの方法です。実際にアプリケーションとバックエンドの間で交換されるデータは、通常base64でエンコードされた文字列です。 NSDataは 'data.base64EncodedStringWithEncoding(NSUTF8StringEncoding) 'を使って簡単にこれに変換できます。 –

    関連する問題