IOS中Cocos2d-x UserDefault数据的路径/位置?
Posted
技术标签:
【中文标题】IOS中Cocos2d-x UserDefault数据的路径/位置?【英文标题】:Path / Location of Cocos2d-x UserDefault data in IOS? 【发布时间】:2021-05-30 18:16:24 【问题描述】:我的任务是将使用 Cocos2d-x 制作的 ios 游戏迁移到 Unity。我遇到的问题之一是我不知道 Cocos2d-x 将用户保存的数据写入哪里。应用程序的 Unity 版本需要访问该数据,以便用户不会丢失他们的进度。
Cocos2d-x 应用程序使用以下方式保存其数据:userDefault->setIntegerForKey("coins", 35);
有人知道用户保存的数据存储在什么路径/位置吗?有什么办法可以找出来吗?我已经尝试通过Window > Devices and Simulators > Installed Apps
在 xcode 上查看它,但该应用未列出。
任何帮助将不胜感激。谢谢。
【问题讨论】:
在 Unity 中,您可以尝试使用PlayerPrefs
,它基本上是 iOS NSUserDefaults 的包装器。 PlayerPrefs.GetInt("coins")
是否返回从 cocos2d-x 保存的值?
@Dalmas 它确实有效!谢谢你!
【参考方案1】:
在 cocos2d-x v4 中:
// write string
[[NSUserDefaults standardUserDefaults] setObject:[NSString stringWithUTF8String:value.c_str()] forKey:[NSString stringWithUTF8String:pKey]];
// read string
NSString *str = [[NSUserDefaults standardUserDefaults] stringForKey:[NSString stringWithUTF8String:pKey]];
// read integer
NSNumber *value = [[NSUserDefaults standardUserDefaults] objectForKey:[NSString stringWithUTF8String:pKey]];
在 V 2.1.2 之前,信息存储在 UserDefault.xml 中
#define XML_FILE_NAME "UserDefault.xml"
#ifdef KEEP_COMPATABILITY
if (! _isFilePathInitialized)
// xml file is stored in cache directory before 2.1.2
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
_filePath = [documentsDirectory UTF8String];
_filePath.append("/");
_filePath += XML_FILE_NAME;
_isFilePathInitialized = true;
#endif
【讨论】:
以上是关于IOS中Cocos2d-x UserDefault数据的路径/位置?的主要内容,如果未能解决你的问题,请参考以下文章
Cocos2d-x v3.3中UserDefault保存的XML文件位置
Part 14:Cocos2d-x开发实战-Cocos2d-x文件访问-关东升-专题视频课程
iOS开发小技巧--userdefault存储复杂数据(image为例)
ios 解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为<null>无法保存在userDefault的问题