老師我有問題@@/
但是昨天日版網友貼的圖裡
有兩張是這樣:
一張是它顯示加倍了不在右上方展示名單裡的速超賽悟空
另一張則是該網友的確也抽到了速超賽悟空
這個怎麼解釋?
※ 引述《seaEPC (沒看見,我沒看見 >_<)》之銘言:
: 小弟鍵盤工程師沒有玩,但是根據文章大概是這麼個意思(盡量白話):
: 遊戲裡面卡片是以ID來存卡片資料的
: 當程式因為某些緣故要展現腳色資料的時候(列出卡池啦,展示你已經有的卡片等等)
: 會利用卡片ID去查對應的資料然後顯示給你
: 而文章裡那段code就是流程
: ①是
: 傳入需求的卡片ID列表,如果該卡片是你APP啟動後已經有顯示過的卡片
: 那該卡片的資料會已經在你手機記憶體裡
: 而如果沒有顯示過的卡片呢? 就找不到,會是個空指標
: 於是接著②
: 程式利用卡片ID去資料庫查相關資料,並抓回來填進cache裡的空缺
: 資料都填滿後就處理完畢
: 邏輯上是這樣,但是這邊遇到的BUG是
: 他從資料庫查回來的資料並沒有排序,而程式也沒有比對ID,直接依照抓回來的順序填坑
: 用他給的舉例來講:
: 你要查詢的卡片ID是 1 3 5 7 9 (已按大小排序)
: 手機已經顯示過,存在記憶體裡的卡片資料是 1 3 5 空 9
: 所以缺了7的資料,就要用②的方式去資料庫查7的資料回來
: 然而他的查詢語法沒排序(估計table欄位也沒有),所以查回來的資料可能是 9 3 7 1 5
: 然後程式直接做比對: 1 3 5 空 9
: 9 3 7 1 5
: 好,所以他就把1的資料給放進記憶體裡的那個空白去了 (開放吐槽)
: 所以即使你用 1 3 5 7 9 去查,也會變成查到 1 3 5 1 9 的資料,自然顯示錯誤
: 而記憶體裡的卡片資料是會因為你APP啟動後的操作而變動的
: 所以上面這個BUG會造成不同人有不同的錯誤顯示
: 然而如果你去按スカウターボタン,程式會去伺服抓正確的id list回來蓋掉你手機記憶
: 體裡的資料,就不會有這樣的問題出現
: 大概是這樣,有錯請指正