您的位置:首页 > 移动开发 > IOS开发

字典转模型简记

2016-01-24 21:00 429 查看
1、设定一个plist字典模型



2、建立模型类

.h方法

#import <Foundation/Foundation.h>

@interface Question : NSObject
//对应的各属性值
@property (nonatomic,copy)NSString *answer;
@property (nonatomic,copy)NSString *icon;
@property (nonatomic,copy)NSString *title;
@property (nonatomic,strong)NSArray *options;

//设定类的实例方法和类方法,类方法用于便捷调用
-(instancetype)initWithDict:(NSDictionary *)dict;
+(instancetype)questionWithDict:(NSDictionary *)dict;

//关联plist方法
+(NSArray *)questions;
@end


.m方法

#import "Question.h"

@implementation Question

-(instancetype)initWithDict:(NSDictionary *)dict{
self = [super init];
if (self) {
//setValuesForKeysWithDictionary方法读取字典相应数据
[self setValuesForKeysWithDictionary:dict];
}
return self;
}

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

//加载plist数组
+(NSArray *)questions{
NSArray *array = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@"questions.plist" ofType:nil]];
NSMutableArray *arrayM = [NSMutableArray array];
for(NSDictionary *dict in array){
[arrayM addObject:[self questionWithDict:dict]];
}

return arrayM;
}

//对象描述方法,显示字典中的内容
-(NSString *)description{
return [NSString stringWithFormat:@"<%@: %p>{answer:%@, icon:%@, title:%@, options:%@}",self.class,self,self.answer,self.icon,self.title,self.options];
}

@end


3、 控制器方法读取

#import "ViewController.h"
#import "Question.h"

@interface ViewController ()
//设置读取模型字典的数组属性
@property (nonatomic,strong)NSArray *questions;
@end

@implementation ViewController
//用懒加载方式读取模型方法
-(NSArray *)questions{
if(_questions == nil){
_questions = [Question questions];
}
return _questions;
}

- (void)viewDidLoad {
[super viewDidLoad];
// 循环显示读取数据(该方法可实现中文转译)
for(Question *obj in self.questions){
NSLog(@"%@", obj);
}
}
@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios plist