从保存的文件初始化类

Posted

技术标签:

【中文标题】从保存的文件初始化类【英文标题】:Initializing classes from saved file 【发布时间】:2011-11-29 02:58:58 【问题描述】:

在 Objective-C++ 中,我希望我的应用程序能够保存和加载表示某些 C++ 对象存在的文件。例如,用户正在运行应用程序并创建了对象abc 的类ABC。用户点击保存以创建以某种格式列出这些对象的文件。然后应用程序应该能够从此文件加载并通过调用构造函数A()、@987654336 来初始化类ABC 的新对象xzz @ 和 C()。 (这显然是对流程的极大简化。)

您认为这样做的最佳策略是什么?有没有比将文本映射到构造函数或类似内容的大型 switch 语句更优雅的解决方案?函数指针会帮助我吗?我可以想象做一些事情,比如让ABC 向拥有它们的对象注册自己,并将它们的构造函数存储在某个地方,但我想知道是否有一些简单的东西我'我不见了。

这里的大问题是必须保存几十个类,所以我想要最简单的解决方案。

【问题讨论】:

阅读序列化:http://en.wikipedia.org/wiki/Serialization boost.org/doc/libs/1_47_0/libs/serialization/doc/index.html 【参考方案1】:

跟进我刚刚在您的帖子上发表的评论,那篇文章对 Objective-C 进行了以下说明:

“在 Objective-C 编程语言中,序列化(通常称为归档)是通过覆盖 Object 根类中的 write:read: 方法来实现的。”

我自己只是 Objective-C 的新手,但我熟悉序列化的概念。在这种情况下,通过覆盖这些方法,您正在使给定类型的对象能够以您指定的格式将自身写入文件,并且您还允许它通过从文件中读取其状态来设置其状态。

我相信 Google 会为此提供很多教程。

【讨论】:

以上是关于从保存的文件初始化类的主要内容,如果未能解决你的问题,请参考以下文章

Spring从容器中获取bean对象可以分别通过啥接口

Spring从容器中获取bean对象可以分别通过啥接口?

VC对话框读取文件

从 HIVE UDF 读取 HDFS 文件 - 执行错误,返回代码 101 FunctionTask。无法初始化类

java 类加载器反射

Java 集合