在Swift中保存UserDefaults的游戏分数排名的最佳方法

K.K*_*K.D 0 nsuserdefaults ios swift

我经常制作游戏应用程序来保存游戏分数,并显示如下所示的排名.(它从不使用任何服务器.用户可以在app中查看自己的游戏分数.)

rank   level  score
1st  level 99 9999
2nd  level 87 8875
3rd  level 87 8875
4th  level 64 6938
5th  level 3  320
...
Run Code Online (Sandbox Code Playgroud)

当我实现这样的排名时,我总是使用如下所示的多维数组.

rankArray
level score 
[0]   [0]   //1st
[1]   [1]   //2nd
[2]   [2]   //3rd

//[0] = 99, 9999
//[1] = 87, 8875
Run Code Online (Sandbox Code Playgroud)

但如果您知道更好的排名方式,请告诉我.

mmr*_*118 5

尝试使用存储用户分数CoreData.

Score使用levelscoreValue作为属性创建对象.

这样,数据就会持久化,并且可以通过多种方式轻松地进行排序和过滤.

您可以保存所有分数并获取最高分,或管理要保存的分数并始终获取所有分数.

获取最高分后,按scoreValues降序排序以按排名对其进行排序.

CoreData是一个非常强大的免费赠品