cocos2dx 3.3final UserDefault有个坑?

今天在写数据的时候,与同事的想法有点不一样,让我产生的疑问,没想到貌似发现一个坑!

同事存数据是直接调用UserDefault::getInstance()->setStringForKey(key, value);没有加flush。。。我就纳闷了,后来网上查资料,多亏下面两篇文章:

UserDefault存储数据问题

cocos2dx 3.2 的UserDefault

项目中 cocos2d\cocos\base 路径下看看,就知道答案了。
    因为你会发现那里有:CCUserDefault.h,CCUserDefault.cpp,CCUserDefaultAndroid.cpp,CCUserDefault.mm。
    也就是说后三个文件公用一个.h文件。那么你分别进到后三个文件查看就会发现:

CCUserDefault.cpp是除IOS,MAC,Android之外的其他平台调用文件,这里的flush()函数是空的。
    CCUserDefaultAndroid.cpp是Android平台调用文件,同样,这里的flush()函数也是空的。
    CCUserDefault.mm文件是IOS和MAC平台调用文件,注意,这里的flush()函数是有内容的:[[NSUserDefaults standardUserDefaults] synchronize];

那么可想而知,最起码Android和苹果这两个平台的数据存储方式也是不同的。

果然坑啊,还好觉得有问题,查了资料。。。。。

时间: 2024-08-08 13:56:31

cocos2dx 3.3final UserDefault有个坑?的相关文章

iOS 平台 Cocos2d-x 项目接入新浪微博 SDK 的坑

iOS 平台 Cocos2d-x 项目接入新浪微博 SDK 的坑 最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的时候被“坑”了,最后终于顺利的解决了.发现网上也有不少人遇到一样的问题,但是能找到的数量有限的解决办法写得都不详细,很难让人理解,我来深入的写一写. 我的开发环境 Mac OS X 10.10.1 Xcode 6.1.1 (6A2008a) Cocos2d-x 3.2 新浪微博 SDK for iOS 2015 年 1 月 5 日从 github clone

《转》iOS 平台 Cocos2d-x 项目接入新浪微博 SDK 的坑

最近在做一个 iOS 的 cocos2d-x 项目接入新浪微博 SDK 的时候被“坑”了,最后终于顺利的解决了.发现网上也有不少人遇到一样的问题,但是能找到的数量有限的解决办法写得都不详细,很难让人理解,我来深入的写一写. 我的开发环境 Mac OS X 10.10.1 Xcode 6.1.1 (6A2008a) Cocos2d-x 3.2 新浪微博 SDK for iOS 2015 年 1 月 5 日从 github clone 的版本 遇到的问题 根据新浪微博 SDK 附带的文档接入项目后,

cocos2dx之WebView踩过的坑(android返回键处理问题)

最近游戏接入了一个私服平台,由于没有sdk,所以支付相关的操作需要在网页端进行,也就是说点击充值需要在游戏内部弹出一个网页,并定位到平台充值的地址.查阅相关资料后决定使用cocos2dx自带的WebView来完成这项任务.WebView的使用方式非常简单,代码如下: #include "ui/CocosGUI.h" using namespace cocos2d::experimental::ui; m_WebView = WebView::create(); // m_WebView

<cocos2dx 随记> 关于cocos2dx接Android sdk的一些坑

简单说说UI线程 :在Android中,有个非常重要的家伙非常霸道,那就是UI线程.这霸道之一:不能被阻塞. 之二:系统对每一个组件的调用都从UI线程分发出去. 简单说说openGL线程:但凡cocos2dx 启动的绘制线程都是openGL线程.就这么多 任何SDK界面的调用,必须从UI线程中调用,所以需要放到主线程中.如果我们直接从GL线程中调用,轻则调用不了,重者程序蹦死. 解决办法: 得到主线程的handler,这里简单说一种,就是在onCreate中new一个静态handler. 或者 

Cocos2dx+lua中Color参数的坑

cocos2x的lua中有如下几种颜色定义 --Color3B function cc.c3b( _r,_g,_b ) return { r = _r, g = _g, b = _b } end --Color4B function cc.c4b( _r,_g,_b,_a ) return { r = _r, g = _g, b = _b, a = _a } end --Color4F function cc.c4f( _r,_g,_b,_a ) return { r = _r, g = _g,

iOS 平台 Cocos2d-x 项目 接入第三方SDK 的坑(就是静态库接入的问题)

解决方法是: -force_load path/to/your/libWeiboSDK.a 而不是 他提供的-ObjC.-all_load,下面是一些详细说明 我的开发环境 Mac OS X 10.10.1Xcode 6.1.1 (6A2008a)Cocos2d-x 3.2新浪微博 SDK for iOS 2015 年 1 月 5 日从 github clone 的版本 遇到的问题 根据新浪微博 SDK 附带的文档接入项目后,在模拟器运行项目,在调用注册方法时发生崩溃.注册方法代码: 1 [We

cocos2dx的android版FileUtils的坑

cocos2dx3.13,FileUtils-android.cpp中可以看到: FileUtils::Status FileUtilsAndroid::getContents(const std::string& filename, ResizableBuffer* buffer) { static const std::string apkprefix("assets/"); if (filename.empty()) return FileUtils::Status::N

cocos2dx热更新tmx的一个坑

游戏项目中使用了tmx地图,当对tmx文件进行热更新时,进入该地图总是宕机,纠结了几小时终于发现,cocos读取tmx文件时,会默认tmx关联的图集文件和tmx在同一目录,然而那个图集文件并没有在热更新当中,导致读取时找不到这个文件所以宕机了. 分析代码如下 : 解决方案: 1.修改底层代码,使用图片文件名称作为图集文件路径,在读取tmx之前把图集文件的路径提前加到cocos搜索路径中 2.每次热更新同时修改tmx和图集文件,必须同时更新 原文地址:https://www.cnblogs.com

cocos2d-x性能优化的那些事

年前在对我做的项目做性能优化,虽然在开发中,性能问题是一直关注着的,但是这个东西依然需要在后期做一段时间的优化的,也遇到不少坑,在这里分享下,也记作笔记,另外也欢迎大家有这方面的问题经验在这里讨论. 性能的优化主要是亮点,内存的优化和运行效率的优化 1.内存的优化 说内存的优化,首先要知道有什么东西会占据程序的内存,可优化的主要是两部分:数据和资源,先说数据,做短连接的游戏客户端有两种处理数据的方式:一种是傻瓜式客户端,另一种是缓存式客户端,傻瓜客户端几乎可以做到0数据,因为他每个界面只是负责展