iOS的数据存储的保存和保存方法

持久数据存储的话题在 iOS 和 Android 上都经常看到,更不用说跨平台的 Unity。

首先,我们来谈谈最简单的数据存储方式。

1.PlayerPrefs 类

在iOS中,我们经常使用一种简单的方式来存储和读取简单的数据,即通过NSUserDefaults类来获取和读取数据。

Android也有类似的方式来存储和获取数据。

当然,我们要学习的Unity也有类似的方式来存储和获取数据。

下面我用iOS来解释一下。

iOS 的数据存储是:

[[NSUserDefaults standardUserDefaults]setObject:@”我是木子才!” forKey:@”name”];

读取的数据是:

NSString *content = [[NSUserDefaultsstandardUserDefaults]objectForKey:@”name”];

就这么简单android 数据储存方式,这么多人随意存数据,汗~~~

当然封装起来更方便、简单、快捷。

那么,让我们看看 Unity 是如何做到的。

数据存储是:

PlayerPrefs.SetString(“name”,”我是木子才!”);

读取的数据是:

stringm_info=PlayerPrefs.GetString(“name”);

其实看起来挺简单的,使用方法也差不多。 Android 类似,但 Android 功能更强大。

/************************我是移动的分割线****************/

好的,现在让我们看看 PlayerPrefs 类。

PlayerPrefs 可以保存和读取 3 种基本数据类型,即整数、浮点数和字符串。方法如下:

公共静态函数 SetInt(key: string, value: int): void; -> 保存整数数据

公共静态函数 SetFloat(key: string, value: float): void; -> 保存浮点数据

公共静态函数 SetString(key: string, value: string): void; -> 保存字符串数据

public static function GetInt(key: string, defaultValue: int = 0): int; -> 读取整型数据

公共静态函数GetFloat(key: string, defaultValue: float = 0.0F): float; -> 读取浮点数据

公共静态函数GetString(key: string, defaultValue: string = “”): string; -> 读取字符串数据

使用方法请参考上面的演示。很简单。

set需要两个参数来判断保存的时候,第一个是key,第二个是value。

Get需要一个参数来判断什么时候读取android 数据储存方式,这才是关键。

官方文档上还有几个方法。一起来看看吧~~

公共静态函数 DeleteAll(): void; -> 删除所有key内容和value内容,称为清除数据。

公共静态函数 DeleteKey(key: string): void; -> 删除指定的key及其对应的值。

公共静态函数 HasKey(key: string): bool; -> 判断指定key是否存在,存在则返回true。

/************************广告出租~~~******************/

现在让我们付诸实践吧。

让我们从代码开始。看不懂代码的可以看这篇文章。

代码如下:

using UnityEngine;
using System.Collections;
public class testScript : MonoBehaviour {
	string m_info = "Nothing";
	void OnGUI() {
		GUI.BeginGroup(new Rect(Screen.width * 0.5f - 100, Screen.height * 0.5f - 100, 500, 200), "");
		GUI.Label(new Rect(0, 10, 200, 30), m_info);
		GUI.skin.label.alignment = TextAnchor.MiddleCenter;
		if (GUI.Button(new Rect(25, 50, 150, 30), "写入数据")) {
			PlayerPrefs.SetString("name", "我是木子才!");
		}
		if (GUI.Button(new Rect(25, 100, 150, 30), "读取数据")) {
			m_info = PlayerPrefs.GetString("name");
		}
		if (GUI.Button(new Rect(0, 150, 200, 30), "将显示Label设置为Nothing")) {
			m_info = "Nothing";
		}
		GUI.EndGroup();
	}
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
	
	}
}

完成后会看到这个界面,打完代码也会看到同样的效果,duang~~~

点击按钮写入数据后,没有任何变化~~~

然后,再次点击读取数据,就可以看到效果了,duang~~~~

当你点击第三个按钮时,它会变成第一张图片的效果,然后你点击按钮读取数据再次看到效果。

随意玩耍。

之后退出进入,点击按钮读取数据,就可以看到效果了~~~~duang~~~~

这次就到此为止~~~谢谢大家~~~

© 版权声明
THE END
喜欢就支持一下吧
点赞259赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容