Сжать / распаковать строку в памяти - PullRequest
2 голосов
/ 20 февраля 2012

Может ли кто-нибудь предоставить мне учебник / документацию по сжатию и распаковке строк в памяти в target-c (для разработки для iPhone).

Я смотрю на Objective-Zip, но, похоже, он работает только путем записи сжатых данных в файл.

1 Ответ

1 голос
/ 20 февраля 2012

приведу пример

@interface NSString (Gzip)
- (NSData *)compress;
@end



@implementation NSString (Gzip)

- (NSData *)compress
{
    size_t len = [self length];
    size_t bufLen = (len + 12) * 1.001;
    u_char *buf = (u_char *)malloc(bufLen);
    if (buf == NULL) {
        NSLog(@"malloc error");
        return nil;
    }
    int err = compress(buf, &bufLen, (u_char *)[[self dataUsingEncoding:NSUTF8StringEncoding] bytes], len);
    if (err != Z_OK) {
        NSLog(@"compress error");
        free(buf);
        return nil;
    }

    NSData *rtn = [[[NSData alloc] initWithBytes:buf length:bufLen] autorelease];
    free(buf);

    return rtn;
}


@end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...