`
ytwhw
  • 浏览: 98167 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

IOS中NSUserDefaults的用法

阅读更多

    NSUserDefaults适合存储轻量级本地数据,比如要保存用户登陆的用户名、密码,使用NSUserDefaults是首选。下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息。

NSUserDefaults支持的数据格式有:NSNumberIntegerFloatDouble),NSStringNSDateNSArrayNSDictionaryBOOL类型。

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保存账号密码

    在iOS开发中,`NSUserDefaults` 是一个非常常用的数据持久化工具,它主要用于存储用户的一些偏好设置或者轻量级的数据。当需要在应用的不同会话之间持久化数据,比如用户的登录状态、账号或密码等信息时,`...

    ios-NSUserDefaults替代品:NSUserDefaultsModel(基于Runtime写的库).zip

    使用系统的NSUserDefaults进行存取值实在是难以对其进行统一管理,为此NSUserDefaultsModel就很好的解决了这一难题,并且还支持Cocoapods。 github地址:https://github.com/liuchongfaye/NSUserDefaultsModel ...

    IOS 中NSUserDefaults读取和写入自定义对象的实现方法

    IOS 中NSUserDefaults读取和写入自定义对象的实现方法 NSUserDefaults是一种常用的存储小量数据的方式,但是它只能存储NSString, NSNumber, NSDate, NSArray, NSDictionary等几种数据类型。如果要存储自定义的对象...

    NSUserDefaults的用法

    在iOS开发中,NSUserDefaults是存储用户偏好设置和轻量级数据的好帮手。虽然它的存储空间有限,但对于存储登录状态、用户偏好设置等信息来说已经足够。通过合理利用NSUserDefaults,我们可以提供更加个性化的用户...

    IOS应用源码——NSUserdefaults(读取和写入自定义对象).zip

    总结起来,这个源码示例旨在帮助开发者理解如何在iOS应用中使用`NSUserDefaults`来存储和检索自定义对象。通过遵循`NSCoding`协议,开发者可以将自定义类实例转换为可存储的数据格式,并在之后恢复这些实例,从而...

    IOS源码应用Demo-NSUserdefaults(读取和写入自定义对象).zip

    - 使用`NSKeyedArchiver`的`archiveRootObject:toFile:`方法将归档后的对象保存到文件,对于`NSUserDefaults`,通常是保存在内存中。 2. **从`NSUserDefaults`读取自定义对象**: - 使用`NSKeyedUnarchiver`的`...

    IOS应用源码——NSUserdefaults(读取和写入自定义对象).rar

    在iOS应用开发中,`NSUserDefaults` 是一个非常重要的组件,它用于存储用户偏好设置或者轻量级的数据。本源码示例主要讲解如何利用`NSUserDefaults`在iOS应用中进行自定义对象的读取与写入操作。下面将详细阐述`...

    iOS之数据持久化-NSUserDefaults

    通过理解其工作原理和使用方法,我们可以更好地管理和保存用户数据,提升用户体验。在开发过程中,根据具体需求选择合适的数据持久化策略,合理利用NSUserDefaults,可以有效提高应用的性能和稳定性。

    Swift 用户首选项 NSUserDefaults

    在本文中,我们将深入探讨`NSUserDefaults`的工作原理、使用方法以及最佳实践。 一、`NSUserDefaults`基础 `NSUserDefaults`类主要用于存储应用程序的默认设置或用户偏好数据,这些数据通常是键值对的形式。这些...

    iOS 本地存储NSUserDefaults封装代码

    本篇文章将详细介绍如何对NSUserDefaults进行封装,以便在项目中更方便地使用。 首先,了解NSUserDefaults的基本用法。NSUserDefaults对象允许开发者存储和检索用户偏好或应用程序状态信息。这些信息包括字符串、...

    自己写的一个NSUserDefaults Demo

    接下来,我们将深入探讨NSUserDefaults的工作原理和使用方法。 首先,NSUserDefaults对象是线程安全的,可以在任何线程中进行读写操作。要获取默认的NSUserDefaults实例,可以使用以下代码: ```objective-c ...

    iphone 开发学习基础NSUserDefaults

    通过学习和理解`NSUserDefaults`的工作原理和使用方法,初学者可以快速地为iOS应用添加基本的用户偏好设置功能。在实际项目中,合理利用`NSUserDefaults`可以提高用户体验,让应用更加智能化。在`Classes`目录下,...

    ios 数据持久化存储

    iOS中的偏好设置,通常被称为NSUserDefaults,是一种轻量级的数据存储方式,适用于存储简单的键值对,如用户首选项。你可以通过键值来存储和读取基本数据类型,如字符串、整数、浮点数等。使用`UserDefaults`类可以...

    ios-iOS中HTML编辑器(可添加图片文字表情,可转换为HTML查看).zip

    对于本地存储,可以使用NSUserDefaults、plist文件、SQLite数据库或者CoreData;对于网络传输,可以使用HTTP请求或者更现代的API如RESTful接口。 总之,"ios-iOS中HTML编辑器"是一个实用的iOS开发示例,它展示了...

    LUKeychainAccess, 与NSUserDefaults类似的iOS钥匙串服务的包装器.zip

    LUKeychainAccess, 与NSUserDefaults类似的iOS钥匙串服务的包装器 LUKeychainAccess 与 NSUserDefaults 类似的iOS钥匙串服务的...用法将下列文件导入项目中,然后使用 #import 文件。LUKeychainAccess.hLUKeychainAcce

    weatherproject_for_NSUserDefaults

    总的来说,`NSUserDefaults`是iOS开发中处理轻量级数据存储的首选工具,熟练掌握其使用能帮助我们构建更加健壮和用户友好的应用程序。在这个天气预报项目中,通过`NSUserDefaults`,我们可以轻松地实现用户偏好和...

    NSUserDefaults Demo iphone

    在"NSUserDefaults Demo iphone"示例中,开发者可能创建了一个简单的iOS应用,演示了如何使用这些方法来保存和读取用户的游戏进度或开关状态。例如,他们可能会存储玩家是否开启音效、上一次离开游戏时的关卡等信息...

    IOS实现侧边栏

    - 在显示或隐藏侧边栏时,可以使用`UIView`的动画方法,如`animate(withDuration:animations:)`,来实现平滑的过渡效果。 - 动画可能包括侧边栏视图的透明度变化、位置移动或缩放等。 4. **布局管理**: - 如果...

    iOS开发秘籍中文版 iOS 5 Programming Cookbook

    这本书由DevDiv团队翻译成中文,旨在帮助中国的开发者更好地理解和应用Apple的iOS SDK,尤其适合那些希望提升iOS编程技能或者在实际项目中遇到问题需要快速查找解决方法的开发者。 本书涵盖了iOS开发中的多个关键...

Global site tag (gtag.js) - Google Analytics