压缩/解压缩内存中的字符串

发布于 2025-01-07 10:37:34 字数 117 浏览 0 评论 0原文

任何人都可以为我提供有关在 Objective-C 中压缩和解压缩内存中字符串的教程/文档(用于 iPhone 开发)。

我正在查看 Objective-Zip,但它似乎只能通过将压缩数据写入文件来工作。

Can anyone provide me a tutorial / documentation on compressing and decompressing strings in memory in objective-c (for iPhone development).

I am looking at Objective-Zip, but it only seems to work by writing the compressed data to a file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜嗑 2025-01-14 10:37:34

给你举个例子

@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

give you an example

@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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文