月度归档:2015年06月

关于ValueTree深度复制的一则教训与实例

近期在做的项目,牵扯到文件、图像,音频、文本等方面的读写、交换与处理。毋容置疑,JUCE类库的ValueTree类实在是得心应手,方便之极。但是经验有时也不靠谱,轻车熟路,漫不经心的丁点草率,都有可能付出巨大的时间代价。

这两天整合调试某模块时,发现一个奇怪的现象:每次跑起来,不管喂进去多少条“记录”(程序中的概念定为note,一个note包含多项数据),明明总文件每次都保存成功了,MVC三者之间运作协调也良好无误,前台显示正常。但是下次启动,只保留了最后的note,其他都不见了。因总文件用了加密技术,懒得写查看单元,就尝试在已有代码中跟一跟。搞了许久无果,郁闷之至。

继续阅读关于ValueTree深度复制的一则教训与实例

近期更新不太及时

最近在做一个项目,加上其他一些杂事,没有太多时间和精力发布、更新网站内容。请谅解。一如既往,欢迎交流,研讨,投稿,等等。

另,2015年度WWDC于本日在加州旧金山芳草地艺术中心(Yerba Buena Center for the Arts)开幕。地址:701 Mission Street, San Francisco。JUCE类库作者Jules将出席该会,并将和参会的JUCE类库使用者举办小型研讨与聚会。与会的朋友可提前联系Jules,获取有关信息。

wwdc

JUCE类库FileBasedDocument详解

先了解一下程序中读写文件的大体流程(分两种情况):

  1. 从无到有的生成文件。运行程序,内部创建各种各样的数据类型和数据对象,一番操作处理后,将数据保存到磁盘文件中。该过程往往利用临时创建或某些类一直持有的XmlElement、ValueTree、JSON等对象(数据模型)来读取、计算和设置(修改、新增等等)各种数据。如有需要时,将这些对象中的数据保存到磁盘文件中。
  2. 读写已有的数据文件。和上个情况差不多,所不同的,内部的数据模型对象在创建时即直接初始化为磁盘文件中的数据,即:先加载和读取磁盘文件中的数据,将所需的数据设置到数据模型中(比如XmlElement对象的属性值)。而后,针对这些数据模型的对象进行读取和设置操作,处理完毕,将数据回写到磁盘文件中。

继续阅读JUCE类库FileBasedDocument详解