码迷,mamicode.com
首页 > 移动开发 > 详细

iOS学习之旅7 NSBundle的pathForResource:ofType: 返回值为nil问题

时间:2016-06-16 20:04:43      阅读:1452      评论:0      收藏:0      [点我收藏+]

标签:

在处理XML的过程中,在项目中手动创建名为“data.xml”的文件,加入网上找的内容

<?xml version="1.0" encoding="utf-8"?>
<Dogs>
  <Dog id="001">
      <name>Ryan</name>
      <age>26</age>
  </Dog>
  <Dog id="002">
      <name>Tang</name>
      <age>27</age>
  </Dog>
  <Dog id="003">
      <name>Lee</name>
      <age>24</age>
  </Dog>
</Dogs>

然后xcode加载data.xml中的内容

 1 -(void)readXML
 2 {
 3     //xml文件的路径
 4     NSString *dataURL = [[NSBundle mainBundle]pathForResource:@"data" ofType:@"xml"];
 5     //读取xml内容
 6     NSData *data =  [NSData dataWithContentsOfFile:dataURL];
 7     GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:data options:0 error:nil];
 8     //得到根标签元素Dogs
 9     GDataXMLElement *rootElement = [doc rootElement];
10     //得到根标签元素下的子标签元素Dog
11     NSArray *elementsForDogs = [rootElement elementsForName:@"Dog"];
12     //遍历
13     for (GDataXMLElement *element in elementsForDogs) {
14         //id节点
15         GDataXMLNode *node = [element attributeForName:@"id"];
16         //id节点值
17         NSLog(@"Dog的id为%@", [node stringValue]);
18         //元素name
19         GDataXMLElement *elementName = [[element elementsForName:@"name"] firstObject];
20         NSLog(@"名字为%@", [elementName stringValue]);
21         //元素age
22         GDataXMLElement *elementAge = [[element elementsForName:@"age"] firstObject];
23         NSLog(@"年龄为%@", [elementAge stringValue]);
24     }
25 }

执行没有任何结果。

技术分享

估计原因是elementsForDogs元素个数为0,没有进入for循环。打印elementsForDogs的元素总数,结果真的是0。然后往上查找,发现原来是dataURL值为nil。为什么NSBundle的pathForResource:ofType: 返回值为nil?

找到当前app,右键点击“显示包内容”,发现目录下不存在data.xml文件

技术分享

解决方法:

告诉编译器把data.xml拷贝到05_JSON和XML_XML处理.app。

1.选择“项目”-->“TARGETS”下的05_JSON和XML_XML处理。

2.然后点击"Build phases",选择“Copy Bundle Resources”。

3.点击“+”添加data.xml

技术分享

 

技术分享

4.“Copy Bundle Resources”包含data.xml了。

技术分享

最后重新运行,结果出来了

技术分享

 

iOS学习之旅7 NSBundle的pathForResource:ofType: 返回值为nil问题

标签:

原文地址:http://www.cnblogs.com/Zev_Fung/p/5591687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!