【问题标题】:How to save data on a persistent store with rubymotion?如何使用 ruby​​motion 将数据保存在持久存储中?
【发布时间】:2014-05-14 22:35:59
【问题描述】:

我试图找到在本地持久存储中存储数据的最佳方法,但我没有找到很多关于此的资源。

我只找到了:

  • 运动模型

但是,制作离线应用程序的最佳方式是什么?我的意思是,我与远程同步一次,然后,我的应用程序使用本地存储(cora 数据、sqlite...)来读取数据?

谢谢

【问题讨论】:

标签: rubymotion


【解决方案1】:

我使用MotionModel(哎呀,我 MotionModel)但我有偏见。它应该用于您不想设置核心数据堆栈的用例。也就是说,InfiniteRed 在 RMQ 方面做得很好,所以他们很可能在 CDQ 方面做得很好,它包装了核心数据。

我建议你每个人都制作一个游戏应用,然后自己决定。

【讨论】:

  • 嗨史蒂夫,我不想在 github 上将其作为一个问题提出,但是由于您的回答使我开始使用它,所以我问您一些事情:我已经设置好了,模型被保存,等等......随着新数据的进入,数据库变得更大。但是如果我关闭并重新打开应用程序,所有的都会丢失,因为数据库是全新的。这是正常行为吗?!我期待它能够像 mysql 数据库一样工作——你保存一条记录,你显然可以在以后得到它
  • Ben,在 MotionModel 中(我希望这就是你要问的),持久性只在你想要的时候发生。这不是自动的。查看github.com/sxross/MotionModel#serialization 了解更多信息。我编写了一个可以包含的模块,用于监视更改并保留模型,但它还没有准备好迎接黄金时间。
  • 啊哈,我的想法仍然只是这种 rails-mysql 方式。该死的想不出一个能让你使用它的用例,但不是“持久存储”任何东西。谢谢你的链接,我去看看
  • 用例是当您进行远程更新并且性能调整表明您应该只每隔一段时间保存一次数据。其理念是,出于性能原因,大多数事情都是可调整的。本要点将向您展示如何在模型中设置观察者,以便您可以观察并回复:gist.github.com/sxross/7cfa64b330beacad1409。用法是@watcher = MyModel.watch{|notification| MyModel.serialize_to_file('my_model.dat')。如果您不想泄漏观察者,请务必在完成后MyModel.stop_watching(@watcher)
【解决方案2】:

我更喜欢 HipByte 在 Locations 示例中建议的方式。

查看LocationsStore 类,以及他们如何以非常简单的方式使用 CoreData。

【讨论】:

【解决方案3】:

您还可以使用CouchbaseLite 并利用它的同步功能使数据离线可用。我创建了一个CouchbaseLite RubyMotion Example,它是应用程序的TodoLite-iOS 版本的一个端口。我目前正在努力使集成更好,更像 ruby​​,但它按原样工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 2011-04-13
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多