簡體   English   中英

iOS Parse.com更新對象

[英]iOS Parse.com updating objects

我正在建立一個使用parse作為后端的照片共享應用程序。 現在,我想在用戶單擊“贊”按鈕后使用以下命令更新每個照片對象的numberOfLikes屬性:

[photoObject incrementKey:@"numberOfLikes"];
[photoObject saveInBackground];

我的問題是,假設有多個用戶同時喜歡同一張照片,這些喜歡的請求是否會在處理隊列中? (Parse會一一處理嗎?)假設這張照片有0個贊,那么在網絡條件相同的情況下,有5個用戶同時喜歡它,保存后的最終結果是1還是5?

抱歉,這個問題看起來很傻,或者我的描述令人困惑。 我對Parse很陌生。 謝謝。

Parse中的某些函數是原子函數,incrementKey恰好是其中之一。

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

保存時,遞增鍵方法是原子的。 因此,過程如下:

玩家A調用獎品上的增量密鑰方法,並嘗試保存(使用回調函數。)玩家B調用獎品上的增量密鑰方法,並嘗試保存(使用回調函數。)玩家A或玩家B的回調都將運行,numberOfWins為6。剩余的Players回調運行,numberOfWins為7。

您還可以使用這些功能實現某種鎖定機制,如本問題所示。

https://parse.com/questions/locking

David的解決方案很聰明並且有效(incrementKey是原子的)。 如果創建的GameRequest對象具有“ challengers”:0值,則每個質詢者都可以調用crementKey:@“ challengers”。 保存后,如果挑戰者的值是1,則他們是第一個提交的挑戰者。 我特別喜歡這個解決方案,因為它也適用於N個玩家游戲。 同樣,您可以使用addUnique :(也是原子的)將用戶ID添加到挑戰者列表中。

最后回答您的問題,應該是5,因為它們是一個接一個地執行,而不是同時執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM