AblyDeltaCodec

Cocoa VCDiff 解码器

使用 Xdelta version 3,一个由 Ably 分叉的 C 语言库,用于使用 VCDIFF/RFC 3284 流进行增量压缩。

Objective-C 示例

@import AblyDeltaCodec;

NSError *error;
ARTDeltaCodec *codec = [[ARTDeltaCodec alloc] init];
[codec setBase:baseData withId:@"m1"];
NSData *outputData = [codec applyDelta:deltaData deltaId:@"m2" baseId:@"m1" error:&error];

// Output data is an utf-8 string:
NSString *output = [[NSString alloc] initWithData:outputData encoding:NSUTF8StringEncoding];

Swift 示例

import AblyDeltaCodec

let codec = ARTDeltaCodec()
codec.setBase(baseData, withId: "m1")

do {
    let outputData = try codec.applyDelta(deltaData, deltaId: "m2", baseId: "m1")
    // Output data is an utf-8 string:
    let output = String(data: outputData, encoding: .utf8)
}
catch {
    print(error)
}

API 参考

无状态

class isDelta

声明

Objective-C

+(BOOL)isDelta:delta;

Swift

class func isDelta(_ delta: Data) -> Bool

参数:

返回值:

返回一个 BOOL/Boolean 值,指示它是否为有效的增量。

class applyDelta

声明

Objective-C

+(NSData *)applyDelta:current previous:previous error:error;

Swift

class func applyDelta(_ current: Data, previous: Data) -> Data (throws)

参数:

返回值:

返回目标的 NSData/Data 对象。 它可以返回 nil

有状态

setBase

声明

Objective-C

-(void)setBase:base withId:baseId;

Swift

func setBase(_ base: Data, withId baseId: Data)

参数:

返回值:

不返回任何内容。

applyDelta

声明

Objective-C

-(NSData *)applyDelta:delta deltaId:deltaId baseId:baseId error:error;

Swift

func applyDelta(_ delta: Data, deltaId deltaId: String, baseId baseId: String) -> Data (throws)

参数:

返回值:

返回目标的 NSData 对象。 它可以返回 nil

致谢:

delta 将会成为新的 base

我们同时使用 XcodeprojPackage.swift

我们目前同时拥有这两个文件,每个文件都包含自己的构建配置/设置。这意味着一个构建可能成功,而另一个可能失败。 这是必需的,因为 Carthage 和 Cocoapods 使用 Xcodeproj,而 SPM 使用 Package.swift

发布流程

对于每个版本,需要完成以下操作