博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【IOS-COCOS2D游戏开发之十九】游戏数据存储的四种常用方式NSKEYEDARCHIVER/NSUSERDEFAULTS/WRITE写入/SQLITE3...
阅读量:6576 次
发布时间:2019-06-24

本文共 5750 字,大约阅读时间需要 19 分钟。

本站文章均为 
 原创,转载务必在明显处注明: 

转载自【黑米GameDev街区】 原文链接: 

OK,今天Himi介绍游戏存储这一块,在Android游戏开发中Himi介绍了好几种保存的方式和形式,那么在iOS中也有几种方式,一般常用的有以下四种形式:

  1.  NSKeyedArchiver(加密形式)

       2.  NSUserDefaults

       3.  Write写入方式

       4.  SQLite3

这里Himi就不再介绍SQlite数据库了,Android游戏存储中我也介绍过SQLite如何保存数据,但是由于这一块很多童鞋没有接触过数据库相关知识,所以即使讲了也没作用,那么对于数据数据库的童鞋们可以参考其他博文或书籍进行学习;

  首先介绍第一种保存方式:NSKeyedArchiver

代码很简单就不多解释了直接上代码:

 第二种保存方式:NSUserDefaults

代码很简单就不多解释了直接上代码:

第三种保存方式:Write写入方式

代码很简单就不多解释了直接上代码:

不论哪种形式代码都很容易理解,那么以上三种保存方式代码中都带有如下两行代码;

我已经注释上了,为了验证是否保存数据成功,如果没有保存成功,最后打印的肯定就是hhhhhhiiiiiiiii,mmmmiiiii啦~正常保存的话如下图控制台信息:

由于本章介绍过于简单,那么下面Himi对Write写入方式保存数据和读取数据封装了两个方法这里放出,给童鞋们行个方便:(其他两种大家封装起来风容易了,这里就不写了);

封装的函数如下:

使用代码如下:

运行效果截图如下:

这里Himi要提醒大家两点细节也是需要注意的地方:

1.对于取出数据的时候需要注意,例如如下代码:

第二句代码是通过一个文件名获取你存储的数据,返回数据数组,但是!一定要注意这里返回的数据数组是不可修改的!及时你将读取的数据赋给一个可修改的数组中也一样无法修改其中的数据,所以如果你想将取出的数据进行修改那么这里需要要使用第三行代码来获取,这里Himi将获取出的数据数组首先copy给了可修改数组中,那么此时你的可修改数组就可以正常修改了!

2.修改已经的存储文件;代码如下:

arraySaveData:表示新的数据数组;

你可能感兴趣的文章
为什么中台是传统企业数字化转型的关键?
查看>>
使用模板将Web服务的结果转换为标记语言
查看>>
inno setup 打包脚本学习
查看>>
php 并发控制中的独占锁
查看>>
从pandas到geopandas
查看>>
用express搭建网站
查看>>
如何在 Swift 中进行错误处理
查看>>
[Leetcode] Factor Combinations 因数组合
查看>>
用tinypng插件创建gulp task压缩图片
查看>>
APM终端用户体验监控分析(下)
查看>>
React Native 0.20官方入门教程
查看>>
JSON for Modern C++ 3.6.0 发布
查看>>
Tomcat9.0部署iot.war(环境mysql8.0,centos7.2)
查看>>
我的友情链接
查看>>
Oracle 服务作用
查看>>
监听在微信中打开页面时的自带返回按钮事件
查看>>
第一个php页面
查看>>
世界各国EMC认证大全
查看>>
LVS DR模型详解
查看>>
Lua基础之coroutine(协程)
查看>>