objective-c - 可以存储在可执行二进制文件中的文本数据是否有限制?

标签 objective-c c sqlite mach-o darwin

我的 OS X 应用程序具有一个应用程序内帮助系统,该系统由值(value)大约 4 MB 原始文本数据的静态字符串组成。

通常,人们会将这些帮助文本存储在与应用程序二进制文件捆绑在一起的轻量级数据库中,并在访问时从中获取它们。相反,为了简单起见,我选择将帮助文本存储在由许多 NSString(在编译时自动生成)组成的大型 NSDictionary 中。访问速度相当快,我能想到的唯一“缺点”是 NSDictionary 不断消耗 4 MB 内存,即使它没有被使用——这对于现代硬件来说真的不是问题. 我的解决方案是务实的,目前运行良好,制作了一个紧凑的应用程序,不会将其内部数据溢出到磁盘上,但它给我一种不安的感觉。

所以,我想我的问题是我正在做的事情是否合适,或者它是否在任何方面都是不好的做法。简洁的: 从技术角度来看,将大量文本“嵌入”到应用程序二进制文件中是否可行? 可以存储在(64 位)Darwin Mach-O 图像中的静态变量数据是否有大小限制?

最佳答案

当您发现打字错误时,您必须编译应用程序并完全部署它,而不是仅仅提供对数据库的更新。这使客户的部署更加顺利。

当这种情况发生时,您的应用需求如此之大,以至于您想提供(例如)德语版本,您必须从头开始更改所有内容。

一般来说:小型二进制文件、大型数据库、 Assets 分开。

关于objective-c - 可以存储在可执行二进制文件中的文本数据是否有限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25440771/

相关文章:

c# - Entity Framework 6 不在 SQLite 数据库中创建表

php - 如果出现多行,如何在 php mysql 的侧存储过程中执行选择查询?

objective-c - 使用斜体字符串作为 NSMenuItem 的标题

objective-c - 删除核心数据实体中的二进制属性的数据(在 NSImageView 中使用)

c - 是否有任何允许 `char array[SIZE_MAX];` (或使用 `malloc` 成功等效)的实际实现?

c - 在循环中调用 fscanf 后,Dev C++ 崩溃

iphone - NSZombieEnabled 不报告导致 EXC_BAD_ACCESS 错误的对象类型

iphone - FMDB中的ResultSet列数

c - 如何子类化 Windows 公共(public)控件?

sql - Scala 元组问题