ifacegen 1.0.0

ifacegen 1.0.0

测试已测试
语言语言 Obj-CObjective C
许可证 BSD
发布日期最新发布2015年5月

Evgeny Kamyshanov 维护。



ifacegen 1.0.0

  • ptiz

是什么

ifacegen 是一个代码生成器,它简化了从 Objective-C 代码中使用现有的 REST+JSON API。ifacegen 为远程服务调用和 JSON 字典创建了本地包装器。简单的 IDL 用于描述现有协议。这是一个从初始存储库分支出来的,你可以在 https://bitbucket.org/ifreefree/ifacegen 找到它。

不是什么

ifacegen 并不是一个通用目的的序列化工具。它只编译给定的 IDL 并相应地生成特殊的 Objective-C 类。

要求

iOS+ARC, Python 2.7

限制

  • 仅限 ARC;
  • 在生成的代码中使用 NSJSONSerialization 创建 JSON 数据,因此在写入传输数据之前会创建中间字典;
  • IDL 的类型原子性中没有“日期”、“枚举”等。只有 int32、int64、double、string、bool、raw 和 rawstr。 "raw" 将从 JSON 字典转换为 NSDictionary,“rawstr” 将从编码在字符串中的 JSON 字典中转换为 NSDictionary(例如:“data”:'{"weird":42,"str":"yes"}');
  • IDL 结构中的所有字段都被视为可选的。如果字段的值不存在,不会抛出错误。
  • 解析器和生成器还没有可读的错误信息。

安装

pod 'ifacegen'

用法

$ python ifacegen.py [-h] [--prefix PREFIX] [-o OUTDIR] I [I ...]
  • h 显示帮助;
  • PREFIX 是一个字符串,ObjC 命名空间前缀,它被添加到要生成的每个类的名称中;
  • OUTDIR 是一个字符串,要放置生成的文件的目录的路径。默认情况下,这些文件将放置在当前目录的 "gen-objc" 子目录中;
  • I [I ...] 是要处理的 IDL 文件名称。

如果你使用 Cocoapods 安装工具,你可能想在构建阶段中添加 "Run Script" 阶段,如下所示:

python Pods/ifacegen/generator/ifacegen.py <IDL file names> -o <output directory>

示例可以在仓库中找到。还可以在 DOC 文件 中查看教程。

待办事项

  • 强制字段;
  • Swift 代码生成器;
  • 解析器和生成器错误处理改进;
  • CoreData 支持。