`

NSUserDefaults

 
阅读更多

iOS下可以使用NSUserDefaults、sqlite、CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据。NSUserDefault的使用比较简单:

 

  1. NSUserDefaults *mySettingData = [NSUserDefaults standardUserDefaults];  

 

创建NSUserDefaults对象之后即可往里面添加数据,它支持的数据类型有NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等系统定义的数据类型,如果要存放自定义的对象(如自定义的类对象),则必须将其转换成NSData存储:

 

  1. NSArray *arr = [[NSArray alloc] initWithObjects:@"arr1", @"arr2", nil]  
  2. [mySettingData setObject:arr forKey:@"arrItem"];  
  3. [mySettingData setObject:@"admin" forKey:@"user_name"];  
  4. [mySettingData setBOOL:@YES forKey:@"auto_login"];  
  5. [mySettingData setInteger:1 forKey:@"count"];  


往NSUserDefaults添加数据后,它们就变成了全局的变量,App中即可读写NSUserDefault中的数据:

  1. NSUserDefaults *mySettingDataR = [NSUserDefaults standardUserDefaults];  
  2.   
  3. NSLog(@"arrItem=%@", [mySettingDataR objectForKey:@"arrItem"]);  
  4. NSLog(@"user_name=%@", [mySettingDataR objectForKey:@"user_name"]);  
  5. NSLog(@"count=%d", [mySettingDataR integerForKey:@"count"]);  

 

如果想删除某个数据项,可以使用removeObjectForKey删除数据:

 

  1. [mySettingData removeObjectForKey:@"arrItem"];  

需要注意的是,NSUserDefaults是定时把缓存中的数据写入磁盘的,而不是即时写入,为了防止在写完NSUserDefaults后程序退出导致的数据丢失,可以在写入数据后使用synchronize强制立即将数据写入磁盘:

 

 

  1. [mySettingData synchronize];  

运行上面的语句后,NSUserDefaults中的数据即被写入到.plist文件中,如果是在模拟器上运行程序,可以在Mac的/Users /YOUR-USERNAME/Library/Application Support/iPhone Simulator/4.1/Applications/YOUR-APP-DIR/Library/Prefereces目录下面找到一个文件名为 YOUR-Bundle_Identifier.plist的plist文件,用Xcode打开该文件,可以看到刚才写入的数据。

分享到:
评论

相关推荐

    自己写的一个NSUserDefaults Demo

    NSUserDefaults是iOS平台上的一种轻量级的数据持久化方法,主要用于存储用户偏好设置或者应用程序的状态数据。在Objective-C中,它是苹果提供的Foundation框架的一部分,为开发者提供了一种简单的方式来读写小型数据...

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

    在iOS开发中,`NSUserDefaults` 是一个至关重要的组件,它允许开发者存储用户偏好设置和轻量级数据。这个源码Demo主要展示了如何使用`NSUserDefaults`来读取和写入自定义对象,这对于理解和实践iOS应用的本地数据...

    Swift 用户首选项 NSUserDefaults

    Swift中的`NSUserDefaults`是苹果iOS、macOS等操作系统中用于存储轻量级用户偏好设置的主要方式。它提供了一个简单易用的接口,让开发者能够快速读取和写入用户的个性化设置,而无需复杂的数据库操作。在本文中,...

    iphone 开发学习基础NSUserDefaults

    在iOS开发中,`NSUserDefaults` 是一个至关重要的组件,它允许开发者存储并检索轻量级的用户偏好设置或应用状态数据。本教程针对初学者,将深入探讨`NSUserDefaults`的基本用法,包括如何设置、读取值以及如何持久化...

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

    在iOS应用开发中,`NSUserDefaults` 是一个至关重要的组件,它允许开发者存储用户偏好设置或者轻量级的数据。这个压缩包"IOS应用源码——NSUserdefaults(读取和写入自定义对象).zip"包含了一个示例项目,展示了...

    NSUserDefaults的用法

    NSUserDefaults是iOS开发中一个非常重要的类,用于存储用户的基本偏好设置和轻量级的数据。它提供了简单的方法来读取和写入数据,这些数据在应用的生命周期内保持持久化,并在用户下次打开应用时仍然可用。这个教程...

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

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

    PAPreferences, 使用 @dynamic 访问 NSUserDefaults.zip

    PAPreferences, 使用 @dynamic 访问 NSUserDefaults PAPreferences使用NSUserDefaults存储用户首选项的简便方法。PAPreferences将 dynamic 属性映射到 NSUserDefaults getter和 setter,以便访问默认值,就像它们是...

    weatherproject_for_NSUserDefaults

    在iOS开发中,`NSUserDefaults` 是一个至关重要的组件,它被用来存储用户偏好设置和轻量级的数据。在"weatherproject_for_NSUserDefaults"这个项目中,我们深入学习了如何利用`NSUserDefaults`来管理天气预报应用中...

    iOS之数据持久化-NSUserDefaults

    其中,NSUserDefaults是苹果提供的一种轻量级的数据持久化方式,主要用于存储少量的基本数据类型,如字符串、整数、浮点数、二进制数据等。这个教程我们将深入探讨iOS中的数据持久化,特别是如何使用NSUserDefaults...

    IOS中NSUserDefaults保存账号密码

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

    NSUserDefaults-记住密码.zip

    `NSUserDefaults`(用户默认值)是苹果提供的一种轻量级的数据存储解决方案,它允许开发者以键值对的形式保存简单类型的数据,如字符串、整数、布尔值、数组和字典等。这个压缩包"NSUserDefaults-记住密码.zip"包含...

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

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

    NSUserdefaults读取和写入自定义对象.rar

    在iOS开发中,`NSUserDefaults` 是一个至关重要的组件,它被用来存储用户的基本偏好设置或轻量级数据。这个压缩包文件"NSUserdefaults读取和写入自定义对象.rar"显然关注的是如何利用`NSUserDefaults`来处理自定义...

    NSUserDefaults-SevenSecurityLayers:仅通过一行代码保护您的NSUserDefaults。 使用简单,强大的加密保护,最高的生产率

    NSUserDefaults + SevenSecurityLayers.h(已过时,不再维护) 为NSUserDefaults提供加密层以安全保存数据的类别。 使用强大的AES 356位加密####效益:*仅用一行代码保护用户数据。*支持混淆二进制源中的密钥*...

    沙盒 和 数据持久化存储 Core Data 和 NSUserDefaults 案例

    本案例主要探讨两种常见的数据持久化方法:沙盒中的文件系统、Core Data以及NSUserDefaults。我们将深入理解这三种方式的工作原理,以及在实际应用中如何选择和使用它们。 首先,"沙盒"是iOS应用的专属运行环境,每...

    iphone NSUserDefaults的一个实例

    在iOS开发中,`NSUserDefaults` 是一个至关重要的组件,它允许开发者存储和检索轻量级的用户偏好和应用设置。本实例将深入探讨如何在iPhone应用程序中使用`NSUserDefaults`,以及如何结合`Settings Bundle`来提供...

    swift-OneStore-NSUserDefaults的一个单一值代理拥有简洁的API

    在Swift编程语言中,`NSUserDefaults`是一个非常重要的类,它用于存储用户偏好设置或轻量级数据,这些数据在应用程序的整个生命周期内都能被持久化。然而,原生的`NSUserDefaults` API有时可能会显得较为繁琐,尤其...

    NSUserDefaults Demo iphone

    NSUserDefaults是iOS和macOS开发中的一个关键组件,用于存储应用程序的轻量级用户偏好和设置。这个"NSUserDefaults Demo iphone"示例旨在展示如何在iPhone应用中有效地使用这一功能。 NSUserDefaults通常用于保存...

Global site tag (gtag.js) - Google Analytics