项目里json返回的一个model须要保存下来,这个model是固定的没必须去创建表,想到了NSUserDefaults来存储,暂不考虑安全问题。

NSUserDefaults没法直接存储一个对象。在网上找到了方法。如今分享下。

首先要写一个对象,详细代码例如以下:

.h文件

@interface CustomSerModel : NSObject
@property(nonatomic,retain)NSString *m_deptId;//部门编号
@property(nonatomic,retain)NSString *m_sort_key;//姓名首字母,用于分组排序
@property(nonatomic,retain)NSString *m_imgUrl;//头像地址
@property(nonatomic,retain)NSString *m_imgKey;//头像文件的key
@property(nonatomic,retain)NSString *m_signature;//个性签名
@property(nonatomic,retain)NSString *m_name;//好友姓名
@property(nonatomic,retain)NSString *m_entUserId;//好友企业用户编号
@property(nonatomic,retain)NSString *m_entId;//好友企业编号
@property(nonatomic,retain)NSString *m_address;//地址
@property(nonatomic,retain)NSString *m_mobilePh;//手机号码
@property(nonatomic,retain)NSString *m_sex;//性别
@property(nonatomic,retain)NSString *m_shortPh;//集团短号
- (void)encodeWithCoder:(NSCoder *)aCoder;
- (id)initWithCoder:(NSCoder *)aDecoder;
+(BOOL) ParserJson:(NSString*)json withArray:(NSMutableArray *)array;
@end

.m文件

@implementation CustomSerModel
@synthesize m_deptId,m_sort_key,m_imgUrl,m_imgKey,m_signature,m_name,m_entUserId,m_entId,m_address,m_mobilePh,m_sex,m_shortPh;
-(void)dealloc
{
[m_deptId release];
[m_sort_key release];
[m_imgUrl release];
[m_imgKey release];
[m_signature release];
[m_name release];
[m_entUserId release];
[m_entId release];
[m_address release];
[m_mobilePh release];
[m_sex release];
[m_shortPh release];
[super dealloc];
}
- (void) encodeWithCoder: (NSCoder *)coder
{
[coder encodeObject:self.m_deptId forKey:@"DeptId"];
[coder encodeObject:self.m_sort_key forKey:@"ImgKey"];
[coder encodeObject:self.m_imgUrl forKey:@"ImgUrl"];
[coder encodeObject:self.m_signature forKey:@"Signature"];
[coder encodeObject:self.m_name forKey:@"Name"];
[coder encodeObject:self.m_entId forKey:@"EntId"];
[coder encodeObject:self.m_entUserId forKey:@"EntUserId"];
[coder encodeObject:self.m_address forKey:@"Address"];
[coder encodeObject:self.m_mobilePh forKey:@"MobilePh"];
[coder encodeObject:self.m_sex forKey:@"Sex"];
[coder encodeObject:self.m_shortPh forKey:@"ShortPh"];
} - (id) initWithCoder: (NSCoder *) coder
{
m_deptId = [[coder decodeObjectForKey:@"DeptId"]copy];
m_imgKey = [[coder decodeObjectForKey:@"ImgKey"]copy];
m_imgUrl = [[coder decodeObjectForKey:@"ImgUrl"]copy];
m_signature = [[coder decodeObjectForKey:@"Signature"]copy];
m_name = [[coder decodeObjectForKey:@"Name"]copy];
m_entId = [[coder decodeObjectForKey:@"EntId"]copy];
m_entUserId = [[coder decodeObjectForKey:@"EntUserId"]copy];
m_address = [[coder decodeObjectForKey:@"Address"]copy];
m_mobilePh = [[coder decodeObjectForKey:@"MobilePh"]copy];
m_sex = [[coder decodeObjectForKey:@"Sex"]copy];
m_shortPh = [[coder decodeObjectForKey:@"ShortPh"]copy]; return self;
}
+(BOOL) ParserJson:(NSString*)json withArray:(NSMutableArray *)array
{
//此处省略
return TRUE;
} @end

定义好对象后如今就是怎么使用了,保存方法:

 NSMutableArray *arr = [[NSMutableArray alloc]init];
[CustomSerModel ParserJson:json withArray:arr];
NSData *encodemenulist = [NSKeyedArchiver archivedDataWithRootObject:arr];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:encodemenulist forKey:@"CustomList"];

获取方法:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSData *saveMenulistDaate = [defaults objectForKey:@"CustomList"];
NSMutableArray *arr = (NSMutableArray *)[NSKeyedUnarchiver unarchiveObjectWithData:saveMenulistDaate];

完毕,感谢汗清提供的帮忙。

參考:http://zani.iteye.com/blog/1431239

http://blog.csdn.net/jianjianyuer/article/details/10112759

http://blog.sina.com.cn/s/blog_61e26bcb010115cm.html

NSUserDefaults 保存自己定义对象的更多相关文章

  1. iOS自己定义对象保存到本地文件

    我是将聊天记录存到本地,里边用到了自己定义的对象.把数据转成Data格式存到本地.在转Data格式的时候报错了.这时候须要先将自己定义对象进行归档才干够转Data格式. 方法例如以下: 一.在.h文件 ...

  2. NSUserDefaults保存用户名和密码

    #import "ViewController.h" @interface ViewController () @property (weak, nonatomic) IBOutl ...

  3. js--自定义对象

    1.直接量对象(JSON) {"name":"zhangsan","age":25} {}代表一个对象,包含多组键值对. 通常key是字符串 ...

  4. js定义对象的几种容易犯的错误

    //js定义对象的几种容易犯的错误function Person() { getName = function (){ console.info(1); }; return this;}//Perso ...

  5. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  6. javascript 构造函数方式定义对象

    javascript是动态语言,可以在运行时给对象添加属性,也可以给对象删除(delete)属性 <html> <head> <script type="tex ...

  7. javaScript定义对象的方法

    转自souhu新闻http://news.sohu.com/20110215/n279335637.shtml? javascript定义对象的几种简单方法 1.构造函数方式,全部属性及对象的方法都放 ...

  8. JS笔记2 --定义对象

    16.javascript中定义对象的几种方式(javascript中没有类的概念,只有对象): 1)基于已有对象扩充其属性和方法: var object = new Object(); object ...

  9. switch case语句里面不能定义对象,有语法错误,除非加一个花括号

    最近发现一个问题呢 发现在switch的case里面不能去定义对象了,一定义对象就会报错了 仔细了解了一下在C或者C++中,只要是在任何一对花括号 “{ }”中定义的对象,那么该对象的作用域就局限在这 ...

随机推荐

  1. Android典型界面设计-访网易新闻实现双导航tab切换

    一.问题描述 双导航tab切换(底部区块+区域内头部导航),实现方案底部区域使用FragmentTabHost+Fragment, 区域内头部导航使用ViewPager+Fragment,可在之前博客 ...

  2. selenium——操作滚动条

    在自动化测试的过程中,难免会应用到翻页键,但是webdriver提供的方法都是操作当前页面可见的元素,对于未在当前范围展示的翻页键,该如何操作呢? 小编在这里介绍一种方法:使用JavaScript操作 ...

  3. 一篇文章掌握nightwatch自动化测试

    nightwatch.js是一个web-ui自动化测试框架,被vue-cli深度整合进来.如果一个项目是基于vue-cli搭建的,基本可以做到开箱即用. 但是我们不可能一直都使用vue-cli.因为它 ...

  4. JS 获取字符串中的url并返回其下标索引

    //获取字符串中的url极其下标索引 function getHttpUrlArray(s) { var s1 = s.match(/http.*/); if(s1 == null) { return ...

  5. Farthest Nodes in a Tree (求树的直径)

    题目链接,密码:hpu Description Given a tree (a connected graph with no cycles), you have to find the farthe ...

  6. c#导出word文档

    为方便下次遇到不知道去哪找先把它存放在这里,以下是保存导出word主要类方法 public class BiultReportForm { /// <summary>word 应用对象 & ...

  7. Apollo配置中心的使用

    1. 自己搭建Apollo配置中心 碰到如下错误: nested exception is org.hibernate.HibernateException: Access to DialectRes ...

  8. [vijos1246]文科生的悲哀(二)

    [vijos1246]文科生的悲哀(二) 试题描述 化学不及格的Matrix67无奈选择了文科.他必须硬着头皮艰难地进行着文科的学习. 这学期的政治.历史和地理课本各有n章.每一科的教学必须按章节从前 ...

  9. 洛谷P1077 摆花

    题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n种花,从1到n标号.为了在门口展出更多种花,规定第i种花不能超过ai盆,摆花时 ...

  10. 【ZJOI2017 Round1练习&BZOJ4766】D1T2 文艺计算姬(Prufer编码)

    题意:给定一个一边点数为n,另一边点数为m,共有n*m条边的带标号完全二分图K_{n,m},求其生成树个数 mod p. 100%的数据:1 <= n,m,p <= 10^18 思路:这是 ...