iOS开发2:读取plist文件

news/2024/7/6 1:38:33

在Xcode中建立一个iOS项目后,会自己产生一个.plist文件,点击时会看见它显示的是类似于excel表格:

但是,如果打开方式选择Source Code,你会看见它其实是一个xml文件。

我们会做一个小例子,在这个例子中我们自己建立一个plist文件并填入数据,然后运行时读取这个plist文件,并将数据填写在界面上。

首先要知道读取plist文件的方法,一般来说,使用代码

1NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"listFileName" ofType:@"plist"];
2NSArray *array = [[NSArray alloc] initWithContentsOfFile:plistPath];
3NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];

已经足够了,此时可以使用NSLog例程查看array和dictionary的内容。不过,有时候受plist文件内容的限制,array内容可能为空。

其实,用dictionary就已经足够了,在下面的例子里我们也只用dictionary。

1、运行Xcode4.2,新建一个Single View Application,名称为ReadPlistFile,其他设置如下图:

2、新建我们自己的plist文件:

File —> New —> New File,选择Mac OS X下的Property List

文件名为 customInfo,Group选择Supporting Files。

3、单击新建的customInfo.plist,我们添加数据,如下图:

注意,Type一项的类型,选择的是Dictionary,以Source Code打开,显示如下:

01<?xml version="1.0" encoding="UTF-8"?>
02<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
03<plist version="1.0">
04<dict>
05    <key>Student</key>
06    <dict>
07        <key>Name</key>
08        <string>Yang</string>
09        <key>Sex</key>
10        <string>Male</string>
11        <key>Num</key>
12        <string>SX_010</string>
13    </dict>
14    <key>Mentor</key>
15    <dict>
16        <key>Name</key>
17        <string>Gu</string>
18        <key>Sex</key>
19        <string>Male</string>
20    </dict>
21</dict>
22</plist>

4、为视图添加控件:

单击BIDViewController.xib,打开IB,拖几个控件上去,并设置好布局,如下图:

上图中所有的控件都是Label,并设置了字体大小。

5、接下来就是映射呗,把五个灰色的Label都映射到BIDViewController.h文件中,类型都死OutLet,名称依次是stuName,stuSex,stuNum,mtName,mtSex。

6、单击BIDViewController.m,在viewDidLoad方法中的[super viewDidLoad]之后添加如下代码:

01//首先读取studentInfo.plist中的数据
02NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"customInfo" ofType:@"plist"];
03NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:plistPath];
04      
05//将学生信息填入视图
06NSDictionary *tmpInfo = [dictionary objectForKey: @"Student"];
07self.stuName.text = [NSString stringWithFormat:@"%@", [tmpInfo objectForKey: @"Name"]];
08self.stuSex.text = [NSString stringWithFormat:@"%@", [tmpInfo objectForKey: @"Sex"]];
09self.stuNum.text = [NSString stringWithFormat:@"%@", [tmpInfo objectForKey: @"Num"]];
10      
11//将导师信息写入视图
12tmpInfo = [dictionary objectForKey: @"Mentor"];
13self.mtName.text = [NSString stringWithFormat:@"%@", [tmpInfo objectForKey: @"Name"]];
14self.mtSex.text = [NSString stringWithFormat:@"%@", [tmpInfo objectForKey: @"Sex"]];

7、运行,查看效果:


http://www.niftyadmin.cn/n/3653633.html

相关文章

IBM2007蓝色之路IPAT测试感言

5月24日&#xff0c;本人有幸接到IBM蓝色之路实习生计划26日的笔试通知&#xff0c;兴奋得一宿没睡好觉。 5月26日&#xff0c;提前一小时顶着满天乌云来到哈工大正光楼&#xff0c;待考。接近9时&#xff0c;传说中的IBM漂亮JJ拿着卷子走进考场&#xff0c;果然有种让人眼前一…

RCP程序设计实战之一:实战Splash Screen

我的实验环境如下&#xff1a;WindowsXP SP2&#xff0c;Eclipse 3.3VEGEFEMFGMFUML2。在没有特殊声明的情况下&#xff0c;全部的代码都将在这个环境中实现。1.1. 缺省启动Logo与进度条通常情况下&#xff0c;当你用Eclipse的RCP向导生成一个应用程序时&#xff0c;PDE总是会在…

iOS开发3:关闭键盘

在 iOS 程序中当想要在文本框中输入数据&#xff0c;轻触文本框会打开键盘。对于 iPad 程序&#xff0c;其键盘有一个按钮可以用来关闭键盘&#xff0c;但是 iPhone 程序中的键盘却没有这样的按钮&#xff0c;不过我们可以采取一些方法关闭它。例如&#xff0c;我们可以实现按下…

IBM IPAT笔试题大搜刮

前一阵子参加了IBM蓝色之路的笔试&#xff0c;等了好多天都没什么动静&#xff0c;本来十分郁闷&#xff0c;但论坛上的消息似乎说明哈尔滨地区的好像一个接到面试通知的都没有&#xff0c;又转念一想当时参加笔试的大多为工大学生&#xff0c;于是就释然了-----跟工大战友死在…

JasperReport实现网络办公系统的报表(一):工程源码+系统使用说明书

在学习JasperReport的过程中&#xff0c;通过其自带的例子以及网络上热心朋友的帖子&#xff0c;我们可以在一段时间之后大略掌握其核心功能&#xff0c;但是这些知识不能让我们立刻就能成为一个可以随时投入工作的人。原因在于&#xff0c;我们在实际的项目中可能会遇到各种各…

UISlider与UISwitch控件

1、UISlider控件就像其名字一样&#xff0c;是一个像滑动变阻器的控件&#xff1a; 上图中的圆圈可以移动&#xff0c;它处在不同的位置&#xff0c;这个UISlider会有不同的值。接下来的例子是关于UISlider的简单使用。 &#xff08;1&#xff09;假设我们已经建立了一个Singl…

Rod和Ted,Don之间关于EJB和Spring的讨论(一)

From:http://blog.springframework.com/rod/ 几天前&#xff0c;在Don Box的博客上&#xff0c;我设法回答一个问题"Spring比EJB简单吗&#xff1f;".现在,这个问题像是有些多余了&#xff0c;因为Spring和EJB的目标并不完全一致&#xff0c;但也许从EJB和Spring两…

UIActionSheet与UIAlertView

iOS程序中的Action Sheet就像Windows中的 “确定-取消”对话框一样&#xff0c;用于强制用户进行选择。当用户将要进行的操作具有一定危险时&#xff0c;常常使用Action Sheet对用户进行危险提示&#xff0c;这样&#xff0c;用户有机会进行取消操作。 Alert相当于Windows中的…