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;

}



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

Java NIO 实现进程通讯,解决用户自定义数据的组包和拆分粘包的问题

TCP通讯过程中,由于网络原因或者其他原因,经常出现粘包和半包现象。所以在具体编程中需要考虑。 下边的 java 代码是用 NIO 实现的一个Server端,消息的通讯格式为: 4字节int类型 ...

15、C语言用户自定义数据类型

C语言用户自定义数据类型 一、结构体 定义语法: struct [名称] { 成员列表; }[变量列表]; 示例程序: #include #include struct Stu...

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

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

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

转载:http://blog.csdn.net/sd0902/article/details/8478427 [html] view plaincopy ...
  • rfyuan
  • rfyuan
  • 2013年08月15日 18:24
  • 1575

百度地图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实现的更加简单,容易上手学习。...

DB2用户自定义数据类型UDT

DB2用户自定义类型(User-Defined distinct types,UDT),这里涉及自定义单值类型,基于DB2内置数据类型。 1、创建 语法如下: CREATE [distinct]...

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

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

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

import java.util.Set; import java.util.HashSet; public class SetTest { public static void main(St...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NSUserDefaults 写入及获取用户的自定义数据
举报原因:
原因补充:

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