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