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和蘋果這兩個平臺的數據存儲方式也是不同的。

    
    果然坑啊,還好覺得有問題,查了資料。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章