Objective-C
Objective-C
Transition from BeginCompressStringENC to FirstChunk/LastChunk
Provides instructions for replacing deprecated BeginCompressStringENC method calls with using FirstChunk/LastChunk properties.Chilkat Objective-C Downloads
#import <CkoStringBuilder.h>
#import <CkoCompression.h>
#import <NSString.h>
#import <CkoBinData.h>
BOOL success = NO;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoStringBuilder *sbCompressedBase64 = [[CkoStringBuilder alloc] init];
CkoCompression *compress = [[CkoCompression alloc] init];
compress.Algorithm = @"deflate";
compress.Charset = @"utf-8";
compress.EncodingMode = @"base64";
CkoStringBuilder *sbIndex = [[CkoStringBuilder alloc] init];
// ----------------------------------------------------------------------------------
// This is the deprecated way of compressing in chunks using Begin/More/End methods..
// ----------------------------------------------------------------------------------
int i;
for (i = 0; i <= 24; i++) {
// Note: It is possible (and normal) for a BeginCompress* or MoreCompress* method to return
// an empty string (or 0 bytes). When this happens, the input data is not lost. It will be flushed
// in a subsequent call.
[sbIndex Clear];
[sbIndex AppendInt: [NSNumber numberWithInt: i]];
if (i == 0) {
[sbCompressedBase64 Append: [compress BeginCompressStringENC: [sbIndex GetAsString]]];
}
else {
[sbCompressedBase64 Append: [compress MoreCompressStringENC: [sbIndex GetAsString]]];
}
[sbCompressedBase64 Append: [compress MoreCompressStringENC: @": This is a line of data to be compressed...\r\n"]];
}
// Flush any remaining output.
[sbCompressedBase64 Append: [compress EndCompressStringENC]];
NSLog(@"%@",@"The base64 encoded compressed text:");
NSLog(@"%@",[sbCompressedBase64 GetAsString]);
// Decompress in one call:
NSString *originalText = [compress DecompressStringENC: [sbCompressedBase64 GetAsString]];
NSLog(@"%@",originalText);
// ----------------------------------------------------------------------------------
// This is new way of compressing in chunks using FirstChunk and LastChunk properties
// ----------------------------------------------------------------------------------
[sbCompressedBase64 Clear];
compress.FirstChunk = YES;
compress.LastChunk = NO;
CkoBinData *bdCompressed = [[CkoBinData alloc] init];
CkoStringBuilder *sbUncompressedChunk = [[CkoStringBuilder alloc] init];
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;
}
NSLog(@"%@",@"The base64 encoded compressed text:");
NSLog(@"%@",[bdCompressed GetEncoded: @"base64"]);
// Decompress in one call:
originalText = [compress DecompressStringENC: [bdCompressed GetEncoded: @"base64"]];
NSLog(@"%@",originalText);