NSUserDefaults 写入及获取用户的自定义数据

原创 2015年11月19日 23:54:31

当你的app被点开的那一刻,就已经和NSUserDefaults结下了不解之缘,这篇文章给出了利用NSUserDefaults保存和提取用户数据的方法

1.偏好数据设置一般都采用这种方法

[[NSUserDefaultsstandardUserDefaults] setObject:id forKey:@""];


2.当需要保存用户的个人资料(姓名,手机号,头像,昵称,,,,,,)等信息数量比较多的时候使用上面的方式就显得有点繁杂了,这时,我们就需要把这些信息定义成一个User或者其他类然后进行保存

例如:设置一个user类 User


a-初始化它

- (id)initWithDictionary:(NSDictionary *)dic{

    self=[superinit];

    if (self) {

        //code

    }

    return self; 

}

在User类中实现<NSCoding>的代理

并实现以下二个方法:

//编码

- (void)encodeWithCoder:(NSCoder *)aCoder{

    [aCoder encodeObject:self._userName forKey:@"userName"];


}

//解码

- (id)initWithCoder:(NSCoder *)aDecoder{

    self=[super init];

    if (self) {

        self._userName=[aDecoder decodeObjectForKey:@"userName"];

    }

    return self;

}



b-保存数据到NSUserDefaults

//保存本机user

+ (void)saveDefaultsUser:(User *)u{

    //编译成二进制

    NSData *archiveData = [NSKeyedArchiverarchivedDataWithRootObject:u];

    //保存user到本机

    [[NSUserDefaultsstandardUserDefaults] setObject:archiveDataforKey:@"DefaultsUser"];

    //使内存中的缓存与用户默认系统进行同步

    [[NSUserDefaultsstandardUserDefaults] synchronize];

}


c-需要的时候将其取出

//获取本机user

+ (User *)getDefaultsUser{

    //获取userdata数据

    NSData *unarchiveData = [[NSUserDefaultsstandardUserDefaults] objectForKey:@"DefaultsUser"];

    if(unarchiveData == nil){

        return nil;

    }

    //执行二进制反编译

    User *u = [NSKeyedUnarchiverunarchiveObjectWithData:unarchiveData];

    

    return u;

}



版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

如何在PB中同时“继承”多个用户自定义数据窗口对象

如何在PB中同时“继承”多个用户自定义数据窗口对象 (加入日期:2001-4-25) 【保存文章至硬盘】【打印文章】【字体:大中 小】 分享到: 0 北京英诺公司技术部 逄新利 ...

百度地图Api进阶教程-用户自定义数据(标记和搜索)7.html

body, html,#allmap {width: 100%;height: 100%;overflow: hidden;} #l-map{height:100%;width:78%;float:l...
  • sd0902
  • sd0902
  • 2013-01-07 20:11
  • 14678

apache mina : 用户自定义数据存储

从整体的设计与实现,每一次Netty都是在apache mina 之上的提升和优化, 也许会更加的简单方便。可以是因为先入为主的原因,总感觉apache mina实现的更加简单,容易上手学习。

HashSet中存方用户自定义数据类型数据,重写equals方法和hashCode方法

import java.util.Set; import java.util.HashSet; public class SetTest { public static void main(St...

NSUserDefaults写入和读取自定义 用户信息类

NSUserDefaults写入和读取自定义类 NSUserDefaults可以存取一些短小的信息,例如:NSString, NSNumber, NSDate, NSArray, NSDict...

iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象

基本使用:创建一个user defaults方法有多个,最简单得快速创建方法:NSUserDefaults *accountDefaults = [NSUserDefaults standardUse...

iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象

基本使用:   创建一个user defaults方法有多个,最简单得快速创建方法:    NSUserDefaults *accountDefaults = [NSUserDefa...

iOS 数据持久化 NSUserDefault 的使用 NSUserDefaults读取和写入自定义对象

本文转自: 基本使用:   创建一个user defaults方法有多个,最简单得快速创建方法:    NSUserDefaults *accountDefaults = [N...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)