NSUserDefaults.StandardUserDefaults.SetString("testUser","username");
NSUserDefaults.StandardUserDefaults.Init(); //Although it's strange that you have to call this method to actually save your stuff
以后你可以像那样检索它:
var username = NSUserDefaults.StandardUserDefaults.StringForKey("username");
现在,如果我需要保存多个用户名(我想要多少)怎么办? 如果我需要使用密码或密码保存多个用户名怎么办?
答案 0 :(得分:12)
以下是数组的示例(许多字符串都使用单个键保存):
NSUserDefaults.StandardUserDefaults ["array"] = NSArray.FromStrings ("a", "b", "c");
foreach (string s in NSUserDefaults.StandardUserDefaults.StringArrayForKey ("array")) {
Console.WriteLine (s);
}
使用单个密钥保存字典(key = value)的示例:
NSDictionary dict = NSDictionary.FromObjectsAndKeys (new object[] { "user1", "user2" }, new object[] { "123", "abc" });
NSString key = new NSString ("dict");
NSUserDefaults.StandardUserDefaults.SetValueForKey (dict, key);
NSDictionary d2 = NSUserDefaults.StandardUserDefaults.DictionaryForKey (key);
for (int i = 0; i < d2.Count; i++) {
Console.WriteLine ("{0} : {1}", d2.Keys [i], d2.Values [i]);
}
答案 1 :(得分:1)
如果你有很多想要搜索和过滤的用户,我会考虑使用核心数据。如果您的应用程序不那么复杂,您始终可以将字典序列化为字符串,并将其保存为用户默认值。一个很好的JSON(de)序列化库是SBJSON http://stig.github.com/json-framework/。
答案 2 :(得分:1)
我无法让NSUserDefaults
存储词典。我最终做的,只是获取Documents目录,并在应用程序终止或转到后台时将我的字典保存到文件,然后在应用程序完成加载时从文件中加载它。 NSDictionary
和NSMutableDictionary
具有从文件加载或保存的类方法 - 它使用序列化的XML,因此它非常优雅。
如果您的应用不需要大量数据,并且数据简单且结构流畅,那么这很好。