gpt4 book ai didi

ios - 在 userdefaults 中保存临时数据?

转载 作者:行者123 更新时间:2023-11-28 15:58:37 24 4
gpt4 key购买 nike

我的屏幕上有基于 Firebase 数据放置在屏幕上的 View 。当 View 最初放置在屏幕上时,它会从 firebase 中提取保存的 x 和 y 并使用它来将自己放置在屏幕上。

View 是可拖动的,所以我希望当用户拖动 View 、离开页面并返回时, View 不再从旧的 firebase 数据中提取,而是从本地保存的一些新 x/y 中提取。之前我所做的只是在触摸结束时更新 firebase 上的 x/y,但这对于很多用户来说是非常不切实际的,而且这似乎是不必要的。

我有一个 super 草率的想法,就是当触摸在其中一个 View 上结束时,通过执行以下操作将 x/y 保存在用户默认值中:

1) 每个 View 都有一个与之绑定(bind)的 firebase UID,所以捕获它

2) 在触摸结束时抓取按钮的 X 和 Y 位置

3) 将键名设为 String(UID + "xCoord") 和 Y 键名并将值保存在下面

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

然后为了清理我的 userdefaults,我可以检查是否存在任何我将再次加载的 View 的 UID,如果没有,我可以清除那些坐标(不确定是否有必要这样做)。

这是一种糟糕的做法吗?有更好的方法吗?我宁愿不接触核心数据,因为我像躲避瘟疫一样避开它,这看起来很简单,不需要它。

关于如何让它变得更好的任何想法?

最佳答案

您基本上已经大致描述了 macOS 如何保存窗口的位置。那里的功能称为“自动保存”。用户默认值是放置它的好地方。

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

关于ios - 在 userdefaults 中保存临时数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41399912/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com