Instance Method インスタンスメソッド

compressedDataUsingAlgorithm:error:

Returns a new data object by compressing the data object’s bytes. ある新しいデータオブジェクトをこのデータオブジェクトのもつバイトそれらを圧縮することによって返します。

Declaration 宣言

- (instancetype)compressedDataUsingAlgorithm:(NSDataCompressionAlgorithm)algorithm 
                                       error:(NSError * _Nullable *)error;

Parameters パラメータ

algorithm

An algorithm used to compress the data. For a list of available algorithms, see NSDataCompressionAlgorithm. データを圧縮するために使われるアルゴリズム。利用可能なアルゴリズムの一覧として、NSDataCompressionAlgorithmを見てください。

error

On return, a pointer to an NSError instance that indicates why compressing the data failed, or nil if no error occurred. 戻りでは、なぜデータの圧縮が失敗したかを指し示すあるNSErrorインスタンスへのポインタ、またはnilもしエラーが発生しなかったならば。

Return Value 戻り値

An NSData instance that contains the compressed buffer data. あるNSDataインスタンス、それは圧縮されたバッファデータを含みます。

Discussion 議論

Use this method to compress in-memory data when you want to reduce memory usage and can afford the time to compress and decompress it. If your data object is already in a compressed format, such as media formats like JPEG images or AAC audio, additional compression may provide minimal or no reduction in memory usage. このメソッドを使用して、インメモリデータを圧縮してください、あなたがメモリ使用を減らしたいそしてそれを圧縮および解凍する時間がさける場合に。あなたのデータオブジェクトが既に圧縮された形式であるならば、たとえばJPEG画像やAACオーディオのようなメディア形式など、追加の圧縮はごくわずかまたは全く削減をメモリ使用において提供しないかもしれません。

To restore this data, use decompressedDataUsingAlgorithm:error:, and specify the algorithm originally used to compress the data. このデータを復元するには、decompressedDataUsingAlgorithm:error:を使ってください、そしてそのデータを圧縮するのにもともと使われたアルゴリズムを指定してください。

The following example shows how to compress the data from a string and prints the sizes of the data instances to illustrate the amount of compression: 以下の例は、どのようにある文字列からのデータを圧縮するかを示します、そしてデータインスタンスのサイズを圧縮量を明らかにするために出力します:


var string = "NSData and its mutable subclass NSMutableData provide data objects, or object-oriented wrappers for byte buffers. Data objects let simple allocated buffers (that is, data with no embedded pointers) take on the behavior of Foundation objects."
let data = Data(string.utf8) as NSData
print ("original data size: \(data.count) bytes")
do {
    let compressedData = try data.compressed(using: .zlib)
    print("zlib compressed size: \(compressedData.count) bytes")
} catch {
    print ("Compression error: \(error)")
}
// Prints:
//  original data size: 241 bytes
//  zlib compressed size: 158 bytes

See Also 参照

Compressing and Decompressing Data データの圧縮と解凍