推出新的偏好存储功能

推出新的偏好存储功能

Corona Labs logo许多开发人员都要求在其应用程序中设置“偏好设置”,作为存储设置和其他少量数据的方式,而无需在操作系统中加载、解析和保存文件。

对于 Windows 应用程序,这可能意味着可以访问注册表设置,或者对于 macOS、iOS 和 tvOS,可以从应用程序的 NSUserDefaults 中读取和写入。 这对于 tvOS 尤为重要,因为应用程序不能依赖保存的设置文件(如果 tvOS 需要其他应用程序的存储空间,可能会从 system.DocumentsDirectory 中删除文件)。

作为回应,Corona 的工程师已将功能添加到现有的 system.getPreference() API 中,并且他们在 system.setPreferences()system.deletePreferences() 中创建了两个新的 API。

以下是关于这组 API 的一些重要理解:

  • 以前,system.getPreference() 用于获取有关用户界面 (UI) 和区域设置的只读信息。 我们扩展了这个 API,允许您以跨平台方式检索键值对。
  • system.getPreference()单数形式,并根据键检索单个值。
  • system.setPreferences()system.deletePreferences()复数形式,并且接受一个包含多个条目的表,以促进更好的性能。
  • 这些是与存储相关的 API - 它们并非旨在在特定操作系统中创建或管理任何 UI 元素。
  • 仅支持数字、布尔值和字符串。 如果需要保存数据表,可以使用 json.encode() 对表进行编码,然后将其另存为字符串。
  • 这些 API 旨在存储少量数据。 如果需要保存大量数据,请考虑使用存储的文件/数据库或云存储的传统方法。
  • 设置和删除偏好设置是阻塞操作,可能会影响性能。 这在某些操作系统上比其他操作系统更明显(Android 的开销最大,其次是 Windows;Apple 平台的性能最好)。
  • 在 Corona 模拟器中运行的应用程序将拥有其自己的基于每个应用程序的偏好设置。 构建为在 Windows 或 macOS 上运行的应用程序将拥有其自己的设置。
  • 这些 API 目前不适用于 Windows Phone 8。
  • 在 Windows 上,默认情况下偏好设置存储在 SQLite 数据库中。 如果您有兴趣将偏好设置保存在 Windows 注册表中,则需要注意一些其他事项。 有关更多详细信息,请参阅创建 Win32 桌面应用程序指南。

结论

这些 API 在主要构建版本 2016.2949 中可用。 单击上面的文档链接以了解有关每个 API 以及 Win32 设置选项的更多信息。 最后,欢迎您加入我们的Corona 论坛,进一步讨论这些功能。

Rob Miracle
[email protected]

Rob 是 Corona Labs 的开发者关系经理。 除了热衷于帮助其他开发人员使用 Corona 制作出色的游戏之外,他还喜欢在业余时间制作游戏。 自 1979 年以来,Rob 一直在个人电脑到大型机上编写游戏代码。 他在游戏行业拥有超过 16 年的专业经验。

暂无评论

抱歉,评论表单暂时关闭。