【问题标题】:Code generator for Objective CObjective C 的代码生成器
【发布时间】:2011-06-29 04:28:12
【问题描述】:

我一直在使用 CodeSmith 从 DB 生成 .NET 代码。有没有类似的 SQLite DB 代码生成工具可以为 Objective-c 生成代码?

【问题讨论】:

  • 有点离题,但我想你知道Core Data 处理这些事情的方法吗?
  • 你总是可以为objective-c编写你自己的模板。 CodeSmith Generator 确实有一个附带最新版本的 SQLiteSchemaProvider。

标签: objective-c sqlite code-generation


【解决方案1】:

这个基于 Objective-C 的 SQLite 存储库有一个简单的 bash 脚本,它将读取 SQLite 数据库并为您生成适当的 ORM 模型。网址是https://github.com/ziminji/objective-c-sql-query-builder

您需要做的就是配置一个小的属性文件,该文件将告诉 bash 脚本 SQLite 数据库在您的硬盘驱动器上的位置。

【讨论】:

  • 谢谢,这真的很有帮助。
【解决方案2】:

是的。 Core Data。它是内置的,速度非常快,文档非常完善,并且有大量示例说明如何使用它。

但是,它不会生成代码。代码生成通常很糟糕;机器生成的代码通常过于冗长、格式不佳且难以调试。更糟糕的是,一旦你编辑了代码,你就无法在没有冲突风险的情况下重新生成(充其量)。

Core Data 和 Interface Builder 一样,采用的方法是,您应该能够在编译期间存档并在运行时取消存档的东西中建模一些功能。更好的是,如果您真的想要,IB 和 Core Data 的建模方面没有在代码中无法完成。也就是说,没有魔法。

【讨论】:

    【解决方案3】:

    如果您正在进行代码优先或模型优先风格的开发,Core Data 是迄今为止在 OS X/iOS 上进行的最佳方式。但是,Core Data 不是 ORM,因此不是使用现有(非核心数据)模式的数据库的正确解决方案。如果这是您的情况,Objective-C 的动态特性意味着很少需要代码生成。实现 Active Record 模式非常简单。以this 项目为例。

    【讨论】:

      【解决方案4】:

      我同意 Barry 和 bbum 关于 Core Data 的说法。它非常有用。然而,它不是灵丹妙药。有时您可能需要访问预先存在的 SQLite 数据库,而将其迁移到 Core Data 将完全是矫枉过正。在这些情况下,您应该使用Flying Meat Database wrapper,也就是“FMDB”。它干净且易于使用。

      【讨论】:

      • 感谢您理解我的问题。我猜其他人不明白我的问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      相关资源
      最近更新 更多