gpt4 book ai didi

ios - 所有用户都可以访问和更改的最有效的数据存储方式

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:56:51 24 4
gpt4 key购买 nike

我目前正在学习 Swift 和 Parse,对于我要问的问题,我将对单元格使用简单的赞成票。

所以我有一个 TableView Controller ,它由对 Parse 上的表的查询填充。为此,我在相关表上创建了一个查询,然后将信息位存储到数组中,例如用户名、文本帖子和对象 ID 的数组:

var postGrabber: [PFObject] = [PFObject]()
var pSenderUsername: [String] = [String]()
var pPostBody: [String] = [String]()
var objectId: [String] = [String]()

然后我可以使用单元格的 indexPath 从上面的数组中获取相关信息。

每个单元格还有一个 UIButton(用于投票以及其他信息)。

Like so...

要获取已单击单元格的 indexPath,我使用:

    let btnPos: CGPoint = sender.convert(CGPoint.zero, to: self.tableView)
let indexPath = self.tableView.indexPathForRow(at: btnPos)!
let rowToAction = indexPath.first!

As a side note, objectAtIndexPath(rowToAction) does not seem to work in Swift 3, does anyone know of an alternative?

从这一点来看,我有点不确定更新 Parse 表的分数属性的最有效方法。

查看 Parse 文档后,我可能会使用计数器变量来保存分数或数组。

不过,我认为在多个用户试图在任何给定时间访问数据的情况下,使用计数器是否可能存在同步问题。 (不确定)

是否有可能有人可以分享他们执行此类任务的方式,以便在任何 1 个给定时间只能由 1 个用户访问来自 Parse 的数据,以避免此类问题。

最佳答案

所以你想增加 numberOfUpVotes

你可以使用

[post incrementKey:@"numberOfUpVotes"];
[post saveInBackground];

这将异步更新投票,incrementKey 方法是原子的。假设我们有 5 个用户同时点击“向上”按钮,键“numberOfUpVotes”的值将是 5 而不是 1。

此外,您可以通过以下方式指定您的增量:

[post incrementKey:@"numberOfUpVotes" byAmount:[NSNumber numberWithInt:2]]

但我认为这不会发生在您的用例中:)

您可以从 Parse 阅读这篇文章:

https://parse.com/questions/concurrency-management-in-parse

或者你可以看到我的问题:

iOS Parse.com updating objects

note: my code is in Objective-C, but it's pretty easy to convert that into Swift.

关于ios - 所有用户都可以访问和更改的最有效的数据存储方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40023328/

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