gpt4 book ai didi

iphone - 网络故障后如何保存并重试报告 GKAchievement?

转载 作者:搜寻专家 更新时间:2023-10-30 19:40:45 25 4
gpt4 key购买 nike

Apple 声明,如果您想报告 GKAchievement 但遇到网络错误,处理此问题的最佳方法是保存 GKAchievement(可能将其添加到数组),然后定期尝试报告成就。

保存成就的最佳位置是什么? NSUserDefaults 是否足够,或者属性列表会是更好的方法吗?

我应该何时以及多久尝试报告一次?在应用程序启动时,还是大约每 10 分钟一次?

最佳答案

属性列表只能处理特定类(参见 "What is a Property List?" ),GKAchievement 不是其中之一。 NSUserDefaults 使用了属性列表,所以这也不行。但是,GKAchievement 确实符合 NSCoding 协议(protocol),这意味着您可以使用 NSKeyedArchiver 轻松地将它们保存到磁盘。我会创建一系列未报告的成就并像这样读/写它们:

//Assuming these exist
NSArray * unreportedAchievements;
NSString * savePath;

// Write to disk
[NSKeyedArchiver archiveRootObject:unreportedAchievements toFile:savePath];

// Read from disk
unreportedAchievements = [NSKeyedUnarchiver unarchiveObjectWithFile:savePath];

关于iphone - 网络故障后如何保存并重试报告 GKAchievement?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3949139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com