2011-02-17 75 views
3

我一直在使用CodeSmith进行.NET代码生成。是否有任何类似的代码生成工具的SQLite数据库生成Objective-C的代码?Objective C的代码生成器

+0

稍有偏离主题,但我认为你知道[核心数据](http://developer.apple.com/library/ios/#documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html )处理这种事情? – 2011-02-17 15:29:33

+0

您可以随时为objective-c编写自己的模板。 CodeSmith Generator确实有一个随最新版本提供的SQLiteSchemaProvider。 – 2011-03-23 16:42:50

回答

3

是的。 Core Data。它内置,非常快,非常有据可查,并且有大量的如何使用它的例子。

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

核心数据与Interface Builder一样,采用这种方法,您应该能够在编译过程中归档并在运行时取消归档的某些内容中对功能进行建模。更好的是,IB和Core Data的建模方面做没有什么,如果你真的想要的话,不能在代码中完成。也就是说,没有魔法。

1

如果您正在开发代码优先或模型优先的样式开发,Core Data是迄今为止使用OS X/iOS的最佳方式。但是,核心数据不是一个ORM,因此不适合使用现有(非核心数据)模式处理数据库。如果这是您的情况,Objective-C的动态特性意味着代码生成几乎不是必需的。实现Active Record模式非常简单。以this项目为例。

+0

这是一个非常好的教程感谢您的帮助。 – 2011-02-21 06:50:33

1

我同意巴里和皮布对核心数据所说的话。这非常有用。但是,这不是万能的。有时你需要访问一个预先存在的SQLite数据库,并且将它迁移到Core Data将会是完全不必要的。在这些情况下,您应该使用Flying Meat Database wrapper,又名“FMDB”。它干净而且易于使用。

+0

谢谢你理解我的问题。其他人不明白我的问题,我猜。 – 2011-02-21 06:50:12