Sample code for 30+ languages & platforms
Objective-C

Compress Text Feed to Binary

See more Compression Examples

This example receives incoming text data in chunks, compresses as a stream, and accumulates the compressed binary data.

Chilkat Objective-C Downloads

Objective-C
#import <CkoBinData.h>
#import <CkoCompression.h>
#import <CkoStringBuilder.h>
#import <NSString.h>

BOOL success = NO;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

CkoBinData *bdCompressed = [[CkoBinData alloc] init];

CkoCompression *compress = [[CkoCompression alloc] init];
compress.Algorithm = @"deflate";
compress.Charset = @"utf-8";

CkoStringBuilder *sbUncompressedChunk = [[CkoStringBuilder alloc] init];

compress.FirstChunk = YES;
compress.LastChunk = NO;

int i;
for (i = 0; i <= 24; i++) {
    if (i == 24) {
        compress.LastChunk = YES;
    }

    [sbUncompressedChunk Clear];
    [sbUncompressedChunk AppendInt: [NSNumber numberWithInt: i]];
    [sbUncompressedChunk Append: @": This is a line of data to be compressed...\r\n"];

    [compress CompressSb: sbUncompressedChunk binData: bdCompressed];

    compress.FirstChunk = NO;
}

// Show the compressed data in hex format:
NSLog(@"%@",@"The hex encoded compressed text:");
NSLog(@"%@",[bdCompressed GetEncoded: @"hex"]);

// Now decompress in one call.  It is important to set both FirstChunk and LastChunk = YES
CkoBinData *bdDecompressed = [[CkoBinData alloc] init];
compress.FirstChunk = YES;
compress.LastChunk = YES;
success = [compress DecompressBd2: bdCompressed bdOut: bdDecompressed];
if (success == NO) {
    NSLog(@"%@",compress.LastErrorText);
    return;
}

NSString *originalText = [bdDecompressed GetString: @"utf-8"];
NSLog(@"%@",originalText);