NSUserDefaults适合存储轻量级本地数据,比如要保存用户登陆的用户名、密码,使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息。
NSUserDefaults支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型。
NSUserDefaults,读取方便,容易。下面给出一个示例看看如何使用:
//保存数据到NSUserDefaults
-(void)saveNSUserDefaults
{
NSString *myString = @"enuola";
int myInteger = 100;
float myFloat = 50.0f;
double myDouble = 20.0;
NSDate *myDate = [NSDate date];
NSArray *myArray = [NSArray arrayWithObjects:@"hello", @"world", nil];
NSDictionary *myDictionary = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"enuo", @"20", nil] forKeys:[NSArray arrayWithObjects:@"name", @"age", nil]];
//将上述数据全部存储到NSUserDefaults中
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
//存储时,除NSNumber类型使用对应的类型外,其他的都是使用setObject:forKey:
[userDefaults setInteger:myInteger forKey:@"myInteger"];
[userDefaults setFloat:myFloat forKey:@"myFloat"];
[userDefaults setDouble:myDouble forKey:@"myDouble"];
[userDefaults setObject:myString forKey:@"myString"];
[userDefaults setObject:myDate forKey:@"myDate"];
[userDefaults setObject:myArray forKey:@"myArray"];
[userDefaults setObject:myDictionary forKey:@"myDictionary"];
//这里建议同步存储到磁盘中,但是不是必须的
[userDefaults synchronize];
}
//从NSUserDefaults中读取数据
-(void)readNSUserDefaults
{
NSUserDefaults *userDefaultes = [NSUserDefaults standardUserDefaults];
//读取数据到各个label中
//读取整型int类型的数据
NSInteger myInteger = [userDefaultes integerForKey:@"myInteger"];
txtInteger.text = [NSString stringWithFormat:@"%d",myInteger];
//读取浮点型float类型的数据
float myFloat = [userDefaultes floatForKey:@"myFloat"];
txtFloat.text = [NSString stringWithFormat:@"%f",myFloat];
//读取double类型的数据
double myDouble = [userDefaultes doubleForKey:@"myDouble"];
txtDouble.text = [NSString stringWithFormat:@"%f",myDouble];
//读取NSString类型的数据
NSString *myString = [userDefaultes stringForKey:@"myString"];
txtNSString.text = myString;
//读取NSDate日期类型的数据
NSDate *myDate = [userDefaultes valueForKey:@"myDate"];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
txtNSDate.text = [NSString stringWithFormat:@"%@",[df stringFromDate:myDate]];
//读取数组NSArray类型的数据
NSArray *myArray = [userDefaultes arrayForKey:@"myArray"];
NSString *myArrayString = [[NSString alloc] init];
for(NSString *str in myArray)
{
NSLog(@"str= %@",str);
myArrayString = [NSString stringWithFormat:@"%@ %@", myArrayString, str];
[myArrayString stringByAppendingString:str];
// [myArrayString stringByAppendingFormat:@"%@",str];
NSLog(@"myArrayString=%@",myArrayString);
}
txtNSArray.text = myArrayString;
//读取字典类型NSDictionary类型的数据
NSDictionary *myDictionary = [userDefaultes dictionaryForKey:@"myDictionary"];
NSString *myDicString = [NSString stringWithFormat:@"name:%@, age:%d",[myDictionary valueForKey:@"name"], [[myDictionary valueForKey:@"age"] integerValue]];
txtNSDictionary.text = myDicString;
}
用NSUserDefaults存储的数据下次程序运行的时候依然存在,其数据存储在应用程序内置的一个plist文件里,这个可以根据路径看到。比如说这个是你的程序沙盒位置
/UsersLibrary/Application Support/iPhoneSimulator/4.1/Applicati*****/29788E40-AF47-45A0-8E92-3AC0F501B7F4/,(这个是应用程序对应在mac上的位置)
这个下面有/Library/Prefereces,里面有个plist文件,存储的就是你的userDefaults,想要删掉的话,用removeObjectForKey或者删掉沙盒,也就是你的应用程序然后重新安装。
分享到:
相关推荐
主要介绍了IOS 中NSUserDefaults读取和写入自定义对象的实现方法的相关资料,希望通过本文大家能够理解掌握这部分内容,需要的朋友可以参考下
使用系统的NSUserDefaults进行存取值实在是难以对其进行统一管理,为此NSUserDefaultsModel就很好的解决了这一难题,并且还支持Cocoapods。 github地址:https://github.com/liuchongfaye/NSUserDefaultsModel ...
用NSUserDefaults存储数据做的一个登陆界面,当用户名和密码对的时候就移除登陆界面
LUKeychainAccess, 与NSUserDefaults类似的iOS钥匙串服务的包装器 LUKeychainAccess 与 NSUserDefaults 类似的iOS钥匙串服务的...用法将下列文件导入项目中,然后使用 #import 文件。LUKeychainAccess.hLUKeychainAcce
几乎每个iOS项目中都会使用到NSUserDefaults,作为iOS开发常用的五种数据存储方式之一(NSUserDefaults、plist、NSKeyedArchiver、FMDB、CoreData),NSUserDefaults算是最易用的了。但是项目中用的多了之后key管理...
//将NSString 对象存储到 NSUserDefaults 中 NSString *remember = @"remember"; NSUserDefaults *user = [NSUserDefaults standardUserDefaults]; [user setObject:remember forKey:@"userChose"]; }else ...
使使用钥匙串API的方法与使用NSUserDefaults一样容易。 寻找使用Swift编写的库吗? 尝试 。 是下一代UICKeyChainStore。 从1.x过渡到2.0 synchronize方法已被弃用。 不再需要调用此方法(只需忽略)。 产品特点 ...
使用 NSUserDefaults。 用法 如何使用 您可以在任何想要计算启动计数的地方调用它。 [TMKLaunchCountManager launch]; 你能做什么? 您已启动的先前版本。 NSLog(@"%@", [[TMKLaunchCountManager ...
在使用app时,从相册中选取图片作为头像是很常用的操作,首先打开相册选择图片,然后将图片保存至本应用的document,最后将document中图片的路径保存至NSUserDefaults和服务器。 从相册中选取图片或拍照 //从相册中...
iOS:NSUserDefaults Windows Phone:IsolatedStorageSettings Windows应用商店:ApplicationDataContainer 示例应用 当前包括一个iOS Touch示例应用程序和“测试”文件夹下的核心解决方案。 #设置与用法 现在...
几种常见的数据存储方式,比如CoreData,SQLite,归档,NSUserdefaults。 都是很基本的用法,^_^ 个人博客: http://www.lrdup.net github: https://github.com/SmallMonster77
用法将NSUserDefaults+MPSecureUserDefaults.h和NSUserDefaults+MPSecureUserDefaults.m到您的项目。 安全NSUserDefaults期望一个秘密来生成特定于应用程序的哈希。 如果打算将用户默认设置链接到创建它们的计算机,...
iOS开发数据库篇—SQLite简单介绍 一、离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等。 说明:离线缓存一般都是把数据保存到项目的沙盒中。有以下几种方式 (1)归档:...
FLEX的使用方法也非常简单,在Github上,Flipboard详细列举了精简和完整两个版本的使用代码: 精简用法: //short version [[FLEXManager sharedManager] showExplorer]; 完整用法: //more complete version ...
在实际的iOS开发中,有些时候涉及到将程序的状态保存下来,以便下一次恢复,或者是记录用户的一些喜好和用户的登录信息等等。 这就需要涉及到数据的持久化了,所谓数据持久化就是数据的本地保存,将数据从内存中迁入...
返回Msg提示信息主界面主界面是直接用xib做的,图片直接使用UI给的图片,另外的话有很多数据是在这个界面初始化的viewDidLoad()方法中,需要计算APP打开的此时的周数,并且通过NSUserDefaults类将其数据存储到plist...
当第一次载入的时候,它通常使用延时加载的方法创建单一实例。 提示:苹果大量的使用了这种方法。例子:[NSUserDefaults standerUserDefaults], [UIApplication sharedApplication], [UIScreen mainScreen], ...
XUserDefaults使用NSUserDefault的类别,用runtime将key与属性的get set方法联系起来,便于管理key数据存储还是使用NSUserDefaults,只不过简化了key的管理。//使用示例1、安装source ''source ''platform :ios, '8.0...
单例模式,为了保证一个类有且只有一个实例,无论创建多少次,都是同一个对象比如...因为只创建一次,所以会常驻内存之中,在频繁使用该类的时候可以提升系统的性能。3.提供全局唯一实例的访问点。单例模式的缺点: 1