1

我想以属于玩家的所有数据都放在其各自文件夹中的方式组织游戏持久数据。我想知道我是否可以依靠玩家 ID 在我的应用程序中创建唯一文件夹。

4

4 回答 4

2

与其他人的解释相反,文档根本不鼓励选择播放器 ID 作为文件夹名称。事实上,玩家 ID 的格式并不能保证,并且将来可能包含不允许包含在路径名中的字符。今天,玩家 ID 的第二个字符是冒号 ( :),这似乎是一个不适合包含在路径名称中的字符。文档明确指出不能对玩家 ID 的格式做出任何假设。

于 2013-10-19T04:00:24.777 回答
1

您可以间接使用它。在Apple Doc中,“标识符字符串是在首次创建玩家帐户时创建的,并且永远不会更改”“玩家标识符是跟踪特定玩家的唯一可靠方法”。因为 Player Id 总是一个字符串。您可以使用哈希或其他算法将 playerid 字符串转换为安全格式。

于 2014-03-26T15:17:04.093 回答
1

Apple 建议您将播放器 ID 用于此目的。

除了在与 Game Center 的交互中使用玩家标识符之外,您的游戏还应该在想要在本地存储有关特定玩家的数据时使用玩家标识符。例如,如果您的游戏存储数据以跟踪玩家的进度(例如在设备上、在您自己的服务器上或在 iCloud 上),请使用玩家标识符来区分在同一设备上玩的多个玩家。这样,如果其他玩家登录到设备,您可以通过显示特定于该玩家的内容来立即个性化体验。

在任何其他情况下,如果您想要一个无论如何都保证唯一的字符串,您可以使用这个:

NSString *guid = [[NSProcessInfo processInfo] globallyUniqueString];

这可以用来唯一地命名文件夹、文件、资产,任何东西,你可以放心,它永远不会与你的用户或任何其他用户创建的东西冲突[需要引用]

于 2013-10-19T03:52:38.490 回答
0

Apple 文档中,每个玩家都由玩家标识符字符串唯一标识,这一点非常清楚。

只是不要对字符串的格式或长度做任何假设。

为了确保它不会与任何其他文件夹冲突,出于任何奇怪的巧合,我会将您的播放器文件夹放在您自己制作的子文件夹中。

于 2013-10-19T03:03:02.377 回答