1. 在控制器属性的(questions)set方法中完成字典转模型的操作

- (NSArray *)questions

{

if (nil == _questions) {

//1.加载plist文件

NSArray *dictArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"questions" ofType:@"plist"]];

//2.字典转模型

NSMutableArray *questionArray = [NSMutableArray array];

for (NSDictionary *dict in dictArray) {

CLQuestion *question = [CLQuestion questionWithDict:dict];

            [questionArray addObject:question];

        }

//3.赋值

_questions = questionArray;

    }

}

2.新建模型类CLQuestion

//2.1依据字典内容建立对应的成员变量

/** 答案*/

@property (nonatomic, copy) NSString *answer;

/** 图像名称*/

@property (nonatomic, copy) NSString *icon;

/** 题目*/

@property (nonatomic, copy) NSString *title;

/** 待选项*/

@property (nonatomic, strong) NSArray *options;

//2.2新建2个初始化方法,仿照系统写法 一个对象方法 一个类方法

- (instancetype)initWithDict:(NSDictionary *)dict;

+ (instancetype)questionWithDict:(NSDictionary *)dict;

//2.3在初始化方法中完成 依据字典内容对成员变量赋值 这里用KVC更简单

- (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.在控制器中使用的方法

CLQuestion *question = self.questions[self.index];

最新文章

  1. Mysql日期和时间函数不求人
  2. Objective-c知识小结
  3. Android03-Activity生命周期及启动模式
  4. 合并k个已排序的链表 分类: leetcode 算法 2015-07-09 17:43 3人阅读 评论(0) 收藏
  5. MapXtrem + Asp.net 地图随窗体改变大小
  6. YII 1.0 隐藏单入口index.php 设置路由与伪静态
  7. C#-----类DateTime的常用方法
  8. 1.rabbitmq高可用方案
  9. spring5 reactive
  10. 记一次KUBERNETES/DOCKER网络排障
  11. python 发送邮件脚本
  12. (GoRails)在导航栏增加自动的搜索功能(jquery插件:easyautocomplete)(gem 'ransack' 搜索对象4000✨)
  13. Oracle生成关闭外键的SQL语句
  14. php四排序-冒泡排序
  15. Ubuntu16.04下的主题美化
  16. 学习sqlserve的一些笔记
  17. post提交方式
  18. PHP开发工具(CodeLobster PHP Edition)
  19. SpringBoot 部署 docker 打包镜像
  20. layui-学习02-全局样式

热门文章

  1. Eclipse maven git
  2. hdu 5074 Hatsune Miku
  3. Android Wear开发 - 数据通讯 - 第零节 : 打包Wear应用(手机和手表应用如何连接)
  4. 【Java&Android开源库代码剖析】のandroid-smart-image-view
  5. COJ 3007 Mr.Yang的小助手
  6. vijos1053Easy sssp
  7. Linux后台进程管理的一些命令小结
  8. ASP.NET网站文件上传下载功能
  9. Android实现OCR扫描识别数字图片之图片扫描识别
  10. hdu 3357 水题