gpt4 book ai didi

ios - 如何使用 Mantle 处理意外的数据类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:12:44 28 4
gpt4 key购买 nike

在我的 MTLModel 子类中我有这个:

@property (assign, nonatomic) NSInteger catId;

当然这在实现中:

+ (NSDictionary *)JSONKeyPathsByPropertyKey {
return @{

@"catId" : @"cat_id"

};

}

但是,如果我的服务器 friend 决定将 cat_id 更改为 JSON 响应中的字符串怎么办?我该如何处理这种情况,并将其转换为 int,以免出现 Mantle 错误?

最佳答案

我们也使用 Mantle 有一段时间了,但最后迁移到手写的解析器/序列化器,因为任务本身似乎微不足道。

虽然,我们也有这样的问题:如果服务器返回一些我们不期望的东西怎么办(例如 NSDictionary 而不是 NSString)。

为了防止我们的应用程序崩溃,我们使用了这个简单的工具:Fuzzer .

基本上,该工具提供了一种获取样本和 block 的方法。该 block 评估了几次,每次都会带来样本的轻微变异版本。您可以使用突变体检查模型/解析器/序列化器的行为,以确保您的代码妥善处理意外数据。

这是从项目的 README 中获取的示例:

- (void)test {
NSDictionary *sample = @{
@“name” : @“John Doe”,
@“age” : @42
};

UserDeserializer *deserializer = [UserDeserializer new];

FZRRunner *runner = [FZRRunner runnerWithBuiltinMutationsForSample:sample];

NSArray *reports = [runner enumerateMutantsUsingBlock:^(NSDictionary *mutant) {
[deserializer deserializeUser:mutant];
}];

XCTAssertEqual(reports.count, 0);
}

关于ios - 如何使用 Mantle 处理意外的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35496150/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com