关于plist的问题

关于plist的问题

按照pdf的方法导入了plist也写了get 方法。但是在打印self.questions的时候却没有东西打印出来(如图一),然后我就按照后面调用的方法,想打印一个model1.title出来,但是有图二的报错,请问什么原因。

http://img1.sycdn.imooc.com//climg/5a2018b60001736725601440.jpg

#import "ViewController.h"


@interface ViewController ()


@property(strong,nonatomic)NSArray*questions;//声明数组

@end


@implementation ViewController


-(NSArray *)questions{//重写get方法


    if(_questions==nil){

        NSString *path =[[NSBundle mainBundle]pathForResource:@"quetsions" ofType:@"plist"];

        //如果没有加载,就加载plist方法

        NSArray *dictArr=[NSArray arrayWithContentsOfFile:path];

        //因为plist文件是数组类型,所以需要创建一个数组,保存从plist中获得到的数据

        

        NSMutableArray *mutArr=[NSMutableArray array];//创建可变数组,保存从数组dictArr遍历出来的每一个元素

        for(NSDictionary *dict in dictArr){//循环字典转模型,将遍历出来的每一个元素,在赋值给对应的模型属性

            IdiomModel *model=[[IdiomModel alloc]init];//创建对象;

            model.answer = dict[@"answer"];

            model.title = dict[@"title"];

            model.options = dict[@"options"];//赋值

            

            [mutArr addObject:model];//添加到可变数组

        

        }

        _questions = mutArr;//循环完毕赋值给属性

    

    }

    return _questions;


}


- (void)viewDidLoad {

    [super viewDidLoad];

    IdiomModel *model1=self.questions[0];

    NSString *name1 = model1.title;

    NSLog(@"%@",name1);//测试记载数据是否读取正确

}



- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



@end



第二次打印的代码,


- (void)viewDidLoad {

    [super viewDidLoad];

    IdiomModel *model1=self.questions[0];

    NSString *name1 = model1.title;

    NSLog(@"%@",name1);/

http://img1.sycdn.imooc.com//climg/5a2018b60001ff4425601440.jpg



正在回答

登陆购买课程后可参与讨论,去登陆

1回答

1、NSString *path =[[NSBundle mainBundle]pathForResource:@"quetsions" ofType:@"plist"];这句代码后面的名称写错了,Resource后面是questions,这个名称写错了是无法获取到数据的,就造成了你打印出来都是为空的情况。为了避免名称写错,其实以后在用到有关plist文件的时候,你都可以直接复制名称,粘贴上去,就不会有错误的情况了。

2、报错是因为没有获取到值,你先将上面的问题解决一下,先获取到值,在进行后面的操作。

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师