1

我最近重读了Mike Ash 关于如何在Objective-C 运行时创建类的有趣教程

很长一段时间以来,我一直在想在哪里应用这种语言的强大功能。对于我想到的大多数想法,我总是看到一个矫枉过正的解决方案,我最终继续使用NSDictionary. 您在运行时创建类的使用案例是什么?我看到的唯一一个是 Obj-C 解释器......更多想法?

4

3 回答 3

6

当有人需要在运行时创建类时,我看到了一些可能的选项

  • 隐藏有关它的信息(在大多数情况下它不会有帮助,但是......你可以)
  • 执行多重继承(如果你真的需要它:)
  • 使用您自己的语言(即一些类似 XML),可以由您的程序解释,用 Obj-C 编写(类似于 NSProxy,但更好。)
  • 创建一些可以在运行时更改其行为的动态类

一般来说..这个有一些可能的用途。但在现实世界中,在默认服务应用程序中实际上不需要这样做:)

于 2012-12-05T17:56:50.720 回答
0

例如,它可以与 Core Data 或与数据库相关的任何 API 一起使用,以创建在编译时未知的新对象类。但是,我怀疑这是否经常使用,它主要是系统在运行程序时使用的机制......

于 2012-10-16T08:15:07.790 回答
0

在 Cocoa 框架中,KVO 是通过动态创建类的“通知”版本来实现的。见http://www.mikeash.com/pyblog/friday-qa-2009-01-23.html

于 2012-12-05T18:05:12.953 回答