资讯专栏INFORMATION COLUMN

ios开发学习-字典转模型

Karrdy / 345人阅读

关于这个知识点,并没有太多难点,其中主要要记住的就是字典转模型,字典转模型一般步骤如下:

(1)首先创建需要数据的 get 和 set 方法,例如:
@property (nonatomic, copy) NSString *answer; 
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *icon;
(2)在一个类中(假设为 MJQuestion)创建两个方法(一个类方法、一个对象方法,作用是一样的),传入 一个字典,取出数据用 get 方法保存到成员变量中,例如:
- (instancetype)initWithDict:(NSDictionary *)dict 
{
   if(self = [super init])
{
  self.icon = dict[@"icon"]; self.title = dict[@"title"];         self.answer = dict[@"answer"];
 self.options = dict[@"options"];
}
  return self; 
}

+ (instancetype)questionWithDict:(NSDictionary *)dict
 {
    return [[self alloc] initWithDict:dict]; 
 }

(3)将 plist 文件中的数据转成字典,并传给上面方法,返回值为 MJQuestion 对象,再将对象保存到 NSMutableArray 中,之后读取数据时就可以根据 NSMutableArray 索引取出每个 MJQuestion 对象,再从 MJQuestion 对象中读取数据显示到相关控件上。部分代码如下:

- (NSArray *)questions
{
if (_questions == nil)
{
   // 1.加载 plist 
   NSArray *dictArray =
[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"questions" ofType:@"plist"]];

  // 2.字典转模型
NSMutableArray *questionArray = [NSMutableArray array];
for (NSDictionary *dict in dictArray)
{
  MJQuestion *question = [MJQuestion questionWithDict:dict];
  [questionArray addObject:question]; 
}

 // 3.赋值
 _questions = questionArray;

}

return _questions;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/16433.html

相关文章

  • 教你如何用Swift写个json模型的开源库

    摘要:所以现在我们就用来写一个的转模型的库吧。所以我们首先要解决的问题是如何在将字典转成模型。表示的是属性的值。如果你看看我们转模型的方法定义就能明白了。写在最后通过上面的几个步骤,我们就能很快的实现一个简单的转模型的需求了。 在iOS项目开发过程中,我们经常会用到将从服务器获取的 json 转 model 的操作,我们可以使用 Swift 提供的setValuesForKeys 或者 Ob...

    AJie 评论0 收藏0
  • iOS-MVVM架构-界面与数据I/O逻辑分离的实践

    摘要:交代一下背景最开始是因为公司要求写单元测试。写单元测试是一件比较痛苦的事情,尤其是在项目已经成型之后。 看了十来篇关于MVVM的文章之后,终于开始有信心在自己的项目中尝试采用MVVM这个架构了。 交代一下背景 最开始是因为公司要求写单元测试。写单元测试是一件比较痛苦的事情,尤其是在项目已经成型之后。懒惰驱使我必须去了解有没有更具吸引力的替代方式,碰巧看到一篇关于MVVM的文章,讲到MV...

    PiscesYE 评论0 收藏0
  • 采用运行时进行复合型数据模型

    摘要:关于动态赋值已有不少帖子进行了详细的说明,本帖就不再讨论,采用运行时数据转模型是一种比较简单的且复用性强的方法,然而使用时往往遇到因为数据结构复杂导致复合型无法完全转化的问题。 关于动态赋值已有不少帖子进行了详细的说明,本帖就不再讨论,采用运行时数据转模型是一种比较简单的且复用性强的方法,然而使用时往往遇到因为数据结构复杂导致复合型json无法完全转化的问题。本帖主要研究了运行时对模型...

    AndroidTraveler 评论0 收藏0
  • CSS技巧 - 收藏集 - 掘金

    摘要:笔者作为一位,将工作以来用到的各种优秀资料神器及框架整理在此,毕竟好记性不如烂键盘,此前端知识点大百科全书前端掘金,,不定期更新技巧前端掘金技巧,偶尔更新。计算数组的极值技巧使你的更加专业前端掘金一个帮你提升技巧的收藏集。 CSS 样式画各种图形 - 前端 - 掘金下面是一些我在 CSS 中经常用到的图案,还有一些是在css-tricks看到的。记录一下,以后会用到。会持续更新… 一、...

    Jonathan Shieber 评论0 收藏0
  • CSS技巧 - 收藏集 - 掘金

    摘要:笔者作为一位,将工作以来用到的各种优秀资料神器及框架整理在此,毕竟好记性不如烂键盘,此前端知识点大百科全书前端掘金,,不定期更新技巧前端掘金技巧,偶尔更新。计算数组的极值技巧使你的更加专业前端掘金一个帮你提升技巧的收藏集。 CSS 样式画各种图形 - 前端 - 掘金下面是一些我在 CSS 中经常用到的图案,还有一些是在css-tricks看到的。记录一下,以后会用到。会持续更新… 一、...

    SHERlocked93 评论0 收藏0

发表评论

0条评论

Karrdy

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<