繁体   English   中英

将临时数据保存在userdefaults中?

[英]Saving temporary data in userdefaults?

我有基于Firebase数据放置在屏幕上的视图。 最初将视图植入屏幕时,它会从Firebase中保存的x和y中提取视图,并使用该视图将自身放置在屏幕上。

视图是可拖动的,因此我希望在用户拖动视图,离开页面并返回视图时不再从旧的Firebase数据中拉出,而是从本地保存新的x / y。 在我做之前,我只是在touchbase上更新了Firebase上的x / y,但这对于许多同时执行此操作的用户来说是不切实际的,而且似乎没有必要。

我的超级草率想法是,当触摸在这些视图之一上结束时,通过执行以下操作将x / y保存在userdefaults中:

1)每个视图都有一个绑定的Firebase UID,所以抓住

2)在触摸端抓住按钮的X和Y位置

3)将键名设置为String(UID +“ xCoord”),将键名也命名为Y,然后将值保存在该名称下

4)当我在寻找要绘制的视图的x / y值时,请检查是否为该UID的Xcoord + Ycoord设置了用户默认设置,否则请转到firebase。

然后清理我的用户默认设置,我可以检查一下是否存在我将再次加载的视图的UID,如果没有,我可以清除这些坐标(不确定是否有必要)。

这是一个糟糕的方法吗? 有更好的方法吗? 我不想进入核心数据,因为我像瘟疫一样避免了它,这似乎很简单,不需要它。

关于如何使它更好的任何想法?

您已经基本描述了macOS如何保存Windows位置。 该功能称为“自动保存”。 用户默认设置是放置此设置的好地方。

我只会为窗口映射一个属性,而不是两个。 您可以使用NSValue(cgPoint:)轻松将CGPoint存储在用户默认值中。 我可能会在属性名称上加上一些前缀(例如“ windowPosition:”),而不是仅使用UID,但这并不重要。 您也可以将所有窗口位置存储在存储字典的单个属性中。 确实,任何合理的方便。 这几乎是用户默认设置的目的,尤其是在iOS用户无法直接与其交互的情况下。 在程序启动之间存储少量数据是其重点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM