4

上周我一直在尝试序列化一个 iOS 项目(Objective-C)的所有类。

由于我曾经在带有 Avro (Apache) 库的 Android 项目中这样做,我一直在尝试在 iOS 项目中做同样的事情,但是,我注意到的第一件事是关于 Avro 的信息并不多IOS。

我尝试的第一件事是:使用 CocoaPods 实现库ObjectiveAvro ,但是在导入时找不到库Avro C中的某些类。

我尝试的第二件事: 删除并再次执行上一个过程,但这次仅使用 Avro C 库,但出现了相同的错误。

我尝试的第三件事:使用 Carthage 实现BlueSteel 框架。这是一个 swift 库,但我想尝试是否可以在 Objective-C 项目中以某种方式使用它。我不能。

我只需要像在 Objective-C 项目中使用 Avro (Android) 一样对提供模式的数据进行序列化和反序列化,而我要做的最后一件事是将整个项目转换为 Swift。

那么你知道目前在 Objective-C 中的实现方式是什么吗?

4

1 回答 1

2

我可以弄清楚如何做我尝试过的第三件事

基本上,有必要通过Carthage导入库,然后创建一个新的 Swift 类,该类将与 Swift 库“对话”,因为我们在一个 Objective-C 项目中。XCode 会要求你添加一个“header-class”并点击“yes”。

然后就像使用 Swift 调用库方法并从当前类调用 Swift 类一样简单。Objective-C 项目中的 Swift 类

最后只是为了告知BlueSteel 框架是一场噩梦,因为它真的很有限而且记录很差,因此我仍然不知道一个真正的替代方案。

但是,如果您要使用它,请记住这些类不是自动生成的,因此您需要手动转换为 Avro 并对结果进行签名。

于 2019-08-14T18:08:49.793 回答