ios 判断ios 写入plist文件件是否为空

iOS -读取plist文件
// UI-城市列表
// Created by jzq_mac on 15/7/30.
// Copyright (c) 2015年 jzq_mac. All rights reserved.
#import ViewController.h
#import DetailViewController.h
@interface ViewController ()
NSArray *allC
UITableView *myTableV
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self loadData];
[self creatTableView];
#pragma ----------------------获得plist里面的数据----------------------
- (void)loadData{
NSString *path = [[NSBundle mainBundle] pathForResource:@citys.plist ofType:nil];
allCitys = [NSArray arrayWithContentsOfFile:path];
NSLog(@%@, allCitys);
#pragma ----------------------初始化TableView----------------------
- (void)creatTableView
myTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 20, CGRectGetWidth(self.view.frame), CGRectGetHeight(self.view.frame)-20) style:UITableViewStylePlain];
myTableView.delegate =
myTableView.dataSource =
[self.view addSubview:myTableView];
#pragma ----------------------UITableViewDelegate---------------------
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return allCitys.
#pragma ----------------------UITableViewDataSource---------------------
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *cellID = @cityC//cell的唯一标识符
// TableView查找有没有叫cellID的cell(满一屏的情况)
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
// 如果没有查找到就初始化cell
if (!cell) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
cell.textLabel.text = allCitys[indexPath.row][@State];
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
DetailViewController *detail = [[DetailViewController alloc]init];
// 模态切换ViewController;用于临时切换到另一个ViewController,把需要显示的ViewController放在最上面 presentedViewController
// 当不再需要刚才放到最上面的ViewController的时候 让他消失dismissViewControllerAnimated
detail.modalTransitionStyle = UIModalTransitionStylePartialC
[self presentViewController:detail animated:YES completion:nil];2015年5月 移动开发大版内专家分月排行榜第一2015年4月 移动开发大版内专家分月排行榜第一2014年9月 移动开发大版内专家分月排行榜第一
2015年3月 移动开发大版内专家分月排行榜第二2014年8月 移动开发大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。IOS学习之 plist文件的读写_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
IOS学习之 plist文件的读写
陕西省富县高级中学教师、陕西省中级教师|
总评分4.1|
用知识赚钱
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩3页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢iOS中plist的创建,数据写入与读取功能创建一个test.plist文件,textInput作为输入,displayLabel作为显示,有一个按钮来触发保持程序triggerStorage;
-(void)triggerStorage
& & displayLabel.text = textInput.
& & NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
& & NSString *path=[paths & &objectAtIndex:0]; &
& & NSString *filename=[path stringByAppendingPathComponent:@"test.plist"]; & //获取路径
& & NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename]; &//读取数据
& & NSLog(@"dic2 is:%@",dic2);&
& & //创建一个dic,写到plist文件里
& & NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:displayLabel.text,@"IP",nil]; //写入数据
& & [dic writeToFile:filename atomically:YES]; &&
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
& & NSMutableArray *resultD&
& & NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
& & NSString *path=[paths objectAtIndex:0];
& & NSLog(@"path = %@",path); &&
& & NSString *filename=[path stringByAppendingPathComponent:@"test.plist"];&
& & //读文件
& & NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename];
& & NSLog(@"dic is:%@",dic2); & &
& & if(dic2 == nil)
& & & & //1. 创建一个plist文件&
& & & & NSFileManager* fm = [NSFileManager defaultManager];
& & & & [fm createFileAtPath:filename contents:nil attributes:nil]; & & & &
& & & & resultData=[dic2 objectForKey:@"IP"];&
& & & & if([dic2 count] & 0)
& & & & & & displayLabel.text = resultD
& & & & else
& & & & & & displayLabel.text = @" ";
& & self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] & //按钮的初始化及触发条件设置
& & & & & & & & & & & & & & & & & & & & & & & &initWithTitle:@"保存"&
& & & & & & & & & & & & & & & & & & & & & & & &style:UIBarButtonItemStylePlain&
& & & & & & & & & & & & & & & & & & & & & & & &target:self&
& & & & & & & & & & & & & & & & & & & & & & & &action:@selector(triggerStorage)] autorelease]; & &
& & [super viewDidLoad];
------------------------------------------------------------------------------------------------------------------------------------------------------------
参考代码:
plist 文件读写
& & //1. 创建一个plist文件
& & NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); &
& & NSString *path=[paths & &objectAtIndex:0];
& & NSLog(@"path = %@",path);
& & NSString *filename=[path stringByAppendingPathComponent:@"test.plist"]; & &
& & NSFileManager* fm = [NSFileManager defaultManager];
& & [fm createFileAtPath:filename contents:nil attributes:nil]; & & & &
& & //NSDictionary* dic = [NSDictionary dictionaryWithContentsOfFile:plistPath];
& & //创建一个dic,写到plist文件里
& & NSDictionary* dic = [NSDictionary dictionaryWithObjectsAndKeys:@"sina",@"1",@"163",@"2",nil];
& & [dic writeToFile:filename atomically:YES];
& & //读文件
& & NSDictionary* dic2 = [NSDictionary dictionaryWithContentsOfFile:filename];
& & NSLog(@"dic is:%@",dic2);
相关文章:
http://blog.csdn.net/totogo2010/article/details/7634185
/kf/061.html
阅读(...) 评论()iOS Plist文件,增删改查
时间: 19:06:38
&&&& 阅读:946
&&&& 评论:
&&&& 收藏:0
标签:  今天早上,9点开始弄Plist,然后一直写,一直写(中午取出40分钟吃饭时间),写到1点,写完了,交给头,头说,不是这个意思。我是每个用户创建了一个文件夹,在这个用户的文件夹里面,分别根据应用创建了文件夹,将Plist文件存在这个应用的文件夹中。头说:就只有一个Plist,这个Plist的命名是以用户名称来命名的,每个应用的名称和信息,记录在这个Plist文件里面。这个Document里面,只有一个Plist了。。刚睡醒午觉的我,灰灰地又回去改,有了上午的经验,半个小时,就弄出来了。去给头请示,又增加了两个小功能,分别是根据所给是name,去判断Plist里面是否包含了这个字段,如果有这个字段,返回yes;没有这个字段,返回NO。
  虽然我没做过,但是觉得不难,头说,要不我做,然后我说,不用,我做就行。回去鼓捣了半个小时,就提交SVN了。
  以前也写过Plist,不知道怎么是咋的了,觉得好笨啊。整过来整过去,把自己给弄乱了,而且,测试的时候,也没有针对性,测了半天,还是有bug。理解需求方面,也不行。好郁闷。不过,还好,觉得自己一直在进步,萌萌哒~
  刚才自己写了一个小demo,简单总结了一下。
如果我们想做这样的一个Plist文件的话,代码如下:
在document下建立plist
NSString * documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
//也可以这样添加后缀
NSString * plistName = [[NSString stringWithFormat:@"test"]stringByAppendingPathExtension:@"plist"];
NSString * plistPath =[documentPath stringByAppendingPathComponent:plistName];
//使用NSMutableDictionary来接收plist里面的文件
NSMutableDictionary * plistDic = [[NSMutableDictionary alloc]initWithContentsOfFile:plistPath];
//判断plist存不存在,如果不存在,则创建这个Dic,否则,后面的文件写入不进去
if (plistDic == nil) {
plistDic = [[NSMutableDictionary alloc]init];
//文件已经创建完,开始往里面添加数据
NSMutableDictionary * nameDic = [plistDic objectForKey:@"name"];
if (nil == nameDic) {
nameDic = [[NSMutableDictionary alloc]init];
//这个nameDic里面,包含一个nameID和一个字典
NSDictionary * nameItemDic = [NSDictionary dictionaryWithObjectsAndKeys:@"tangtang",@"xiaoming", nil];
NSMutableDictionary * nameItemDic1 = [NSMutableDictionary dictionary];
[nameItemDic1 setObject:@"tangtang" forKey:@"xiaoming"];
[nameItemDic1 setObject:@"lili" forKey:@"nicheng"];
[nameItemDic1 setObject:@"12" forKey:@"age"];
NSMutableArray * nameArr = [NSMutableArray arrayWithArray:[nameDic objectForKey:@"nameArr"]];//因为,如果在之前有plist文件的话,我们需要将它取出来,然后在后面进行添加
[nameArr addObject:nameItemDic];
[nameArr addObject:nameItemDic1];
NSString * name = @"tangtang";
[nameDic setObject:name forKey:@"name"];
[nameDic setObject:nameArr forKey:@"nameItem"];
[plistDic setObject:nameDic forKey:name];
[plistDic writeToFile:plistPath atomically:YES];
运行完上面的代码,我们用iFunbox打开应用程序,在Document里面,就能看到这个Plist了。相对比较简单。
提供方法1:--查找是否包含这个name
遍历plist文件,取出里面想取出的东西
@return if find ,return YES;else ,return NO
-(BOOL)queryPlistWithName:(NSString *)name{
NSString * plistPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"test.plist"];
NSMutableDictionary * plistDic = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
if (nil == plistDic) {
return NO;
NSArray * allKeys = [plistDic allKeys];
for (int i = 0; i & allKeys. i++) {
NSMutableDictionary * tempDic = [plistDic objectForKey:[allKeys objectAtIndex:i]];
NSString * tempName = [tempDic objectForKey:@"name"];
if ([tempName isEqualToString:name]) {
NSLog(@"名字查找到了");
return YES;
return NO;
  提供方法二:删除该name
- (void)deletePlistWithName:(NSString *)name{
NSString * plistPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"test.plist"];
NSMutableDictionary * plistDic = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];
if (nil == plistDic) {
NSArray * allkeys = [plistDic allKeys];
for (int i = 0; i & allkeys. i++) {
NSMutableDictionary * tempDic = [plistDic objectForKey:[allkeys objectAtIndex:i]];
NSString * tempName = [tempDic objectForKey:@"name"];
if ([tempName isEqualToString:name]) {
[plistDic removeObjectForKey:name];
NSLog(@"删除成功");
[plistDic writeToFile:plistPath atomically:YES];
NSLog(@"未找到");
  写Plist,最主要的是:要明白自己的书写顺序,是字典还是数组,哪个是一级的,哪个是二级的,等等。
  还有就是不要忘记修改完之后,写入文件中。
总结完毕。。今天发工资,觉得自己的工资好低啊,旁边的邻居,刚开始找工作,就比我高1k,不甘心啊!!!!
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!

我要回帖

更多关于 ios plist文件 的文章

 

随机推荐