菜鸟教程小白 发表于 2022-12-11 17:49:58

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


                                            <p><p>我目前正在学习 Swift 和 Parse,对于我要问的问题,我将对单元格进行简单的投票。 </p>

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

<pre><code>var postGrabber: = ()
var pSenderUsername: = ()
var pPostBody: = ()
var objectId: = ()
</code></pre>

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

<p>每个单元格还有一个 UIButton(用于投票和其他信息)。 </p>

<p> <img src="/image/Xm5jQ.png" alt="Like so..."/> </p>

<p>要获取点击了哪个单元格的 <code>indexPath</code>,我使用:</p>

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

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

<p>从这一点来看,我有点不确定更新 Parse 表的 score 属性的最有效方法。</p>

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

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

<p>是否有可能有人可以分享他们执行此类任务的方式,以便在任何给定时间只能由 1 个用户访问 Parse 中的数据,以避免此类问题。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>所以你想增加 <code>numberOfUpVotes</code>。 </p>

<p>你可以使用</p>

<pre><code>;
;
</code></pre>

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

<p>此外,您可以通过以下方式指定增量金额:</p>

<pre><code>]
</code></pre>

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

<p>您可以从 Parse 阅读这篇文章:</p>

<p> <a href="https://parse.com/questions/concurrency-management-in-parse" rel="noreferrer noopener nofollow">https://parse.com/questions/concurrency-management-in-parse</a> </p>

<p>或者你可以看看我的问题:</p>

<p> <a href="https://stackoverflow.com/questions/33244583/ios-parse-com-updating-objects" rel="noreferrer noopener nofollow">iOS Parse.com updating objects</a> </p>

<blockquote>
<p>note: my code is in Objective-C, but it&#39;s pretty easy to convert that
into Swift.</p>
</blockquote></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 所有用户都可以访问和更改的最有效的数据存储方式,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/40023328/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/40023328/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 所有用户都可以访问和更改的最有效的数据存储方式