- 浏览: 534959 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
tangyunliang:
大哥你太历害了谢谢
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
u013015029:
LZ,请问下,在// 添加消息到聊天窗口 , 这里获取Ed ...
Android基于XMPP Smack Openfire开发IM【四】初步实现两个客户端通信 -
endual:
怎么保持会话,我搞不懂啊
Android基于XMPP Smack Openfire开发IM【一】登录openfire服务器 -
donala_zq:
显示:[2013-11-30 11:50:36 - Andro ...
android-----------新浪微博 -
donala_zq:
哥,运行不了啊
android-----------新浪微博
实现的功能:1)演示使用属性文件持久化数据。
关键词:数据持久化 属性文件 plist
1、新建一个Sigle View Application,命名为Persistence-file,工程结构如下
[img]
[/img]
2、修改ViewController.xib,添加4个Label控件和4个TextField控件,如下:
[img]
[/img]
3、修改ViewController.h,如下:
注意,需要连接各个输出口
4、修改ViewController.m,如下:
备注1、备注2:
NSDocumentDirectory:常量,表明正在查找Documents目录的路径
NSUserDomainMask:常量,表面将搜索限制与当前应用程序的沙盒中,这样的话只能找到一个Documents目录,因为每个应用程序沙盒中只有一个Documents目录,所以备注2中从paths中取第一个即为当前应用程序的Documents目录的路径
5、编译、运行,在TextField中输入内容,然后退出Simulator,进行测试:
[img]
[/img] [img]
[/img]
6、通过上一篇对IOS应用程序沙盒的的介绍,本工程属性文件data.plist,保存的位置是:
/Users/duobianxing/Library/Application Support/iPhone Simulator/5.0/Applications/88528A36-00CB-4900-9762-1FD5D6AC8595/Documents
[img]
[/img]
7、总结:
1)可以简单保存静态数据,但是无法将自定义对象序列化到属性列表中
2)该持久化方法与上一篇中介绍的NSUserDefaults实质上都是将数据写入到.plist属性文件中,区别是文件保存的位置不同。
关键词:数据持久化 属性文件 plist
1、新建一个Sigle View Application,命名为Persistence-file,工程结构如下
[img]
[/img]
2、修改ViewController.xib,添加4个Label控件和4个TextField控件,如下:
[img]
[/img]
3、修改ViewController.h,如下:
#define kFileName @"data.plist" #import <UIKit/UIKit.h> @interface ViewController : UIViewController @property(nonatomic,retain)IBOutlet UITextField *name; @property(nonatomic,retain)IBOutlet UITextField *gender; @property(nonatomic,retain)IBOutlet UITextField *age; @property(nonatomic,retain)IBOutlet UITextField *education; -(NSString *)dataFilePath; -(void)applicationWillResignActive:(NSNotification *)nofication; @end
注意,需要连接各个输出口
4、修改ViewController.m,如下:
#import "ViewController.h" @implementation ViewController @synthesize name,gender,age,education; #pragma mark - View lifecycle - (void)viewDidLoad { // Do any additional setup after loading the view, typically from a nib. [super viewDidLoad]; UIApplication *app = [UIApplication sharedApplication]; //订阅通知UIApplicationWillResignActiveNotification,进行数据保存操作 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillResignActive:) name:UIApplicationWillResignActiveNotification object:app]; //初始化数据 [self initData]; } -(void)initData{ NSString *filePath = [self dataFilePath]; NSLog(@"filePath=%@",filePath); //从文件中读取数据,首先判断文件是否存在 if([[NSFileManager defaultManager] fileExistsAtPath:filePath]){ NSArray *array = [[NSArray alloc]initWithContentsOfFile:filePath]; name.text = [array objectAtIndex:0]; gender.text = [array objectAtIndex:1]; age.text = [array objectAtIndex:2]; education.text = [array objectAtIndex:3]; [array release]; } } -(void)applicationWillResignActive:(NSNotification *)nofication{ NSMutableArray *array = [[NSMutableArray alloc]init]; [array addObject:name.text]; [array addObject:gender.text]; [array addObject:age.text]; [array addObject:education.text]; //将数据写入到文件dataFilePath中 [array writeToFile:[self dataFilePath] atomically:YES]; [array release]; } //获得文件路径 -(NSString *)dataFilePath{ //检索Documents目录 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);//备注1 NSString *documentsDirectory = [paths objectAtIndex:0];//备注2 return [documentsDirectory stringByAppendingPathComponent:kFileName]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Release any cached data, images, etc that aren't in use. } - (void)viewDidUnload { [super viewDidUnload]; // Release any retained subviews of the main view. // e.g. self.myOutlet = nil; self.name = nil; self.gender = nil; self.age = nil; self.education = nil; } -(void)dealloc{ [name release]; [gender release]; [age release]; [education release]; } - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; } - (void)viewDidAppear:(BOOL)animated { [super viewDidAppear:animated]; } - (void)viewWillDisappear:(BOOL)animated { [super viewWillDisappear:animated]; } - (void)viewDidDisappear:(BOOL)animated { [super viewDidDisappear:animated]; } - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Return YES for supported orientations return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); } @end
备注1、备注2:
NSDocumentDirectory:常量,表明正在查找Documents目录的路径
NSUserDomainMask:常量,表面将搜索限制与当前应用程序的沙盒中,这样的话只能找到一个Documents目录,因为每个应用程序沙盒中只有一个Documents目录,所以备注2中从paths中取第一个即为当前应用程序的Documents目录的路径
5、编译、运行,在TextField中输入内容,然后退出Simulator,进行测试:
[img]
[/img] [img]
[/img]
6、通过上一篇对IOS应用程序沙盒的的介绍,本工程属性文件data.plist,保存的位置是:
/Users/duobianxing/Library/Application Support/iPhone Simulator/5.0/Applications/88528A36-00CB-4900-9762-1FD5D6AC8595/Documents
[img]
[/img]
7、总结:
1)可以简单保存静态数据,但是无法将自定义对象序列化到属性列表中
2)该持久化方法与上一篇中介绍的NSUserDefaults实质上都是将数据写入到.plist属性文件中,区别是文件保存的位置不同。
发表评论
-
新风作浪博客学习(十九)在iOS虚拟键盘上添加动态隐藏按钮
2013-06-08 09:19 860为了给用户比较良好的交付,想在键盘上添加一个按钮,实时根据键盘 ... -
新风作浪博客学习(十八)openURL的使用(iOS调用系统电话、浏览器、地图、邮件等) .
2013-06-08 09:19 1004今天遇见一行代码实现打开一个网页,比起印象里的UIWebVie ... -
新风作浪博客学习(十七)UIImageView响应点击事件 .
2013-06-08 09:19 705有时候会遇到点击一张图片,然后让这张图片触发一个事件,或者是跳 ... -
新风作浪博客学习(十六)Navigation + Tab Bar 常用组合框架 .
2013-06-07 08:50 1253看到很多项目中都采用的是Navigation加Tab Bar组 ... -
新风作浪博客学习(十五)google地图定位小Demo .
2013-06-07 08:50 1141[img][/img]今天写的是一个简单功能的google地图 ... -
新风作浪博客学习(十四)怎样向iPhone模拟器中添加图片 .
2013-06-07 08:50 786在我们做项目中可能需要使用图库,模拟器是有图库的,但是如何像其 ... -
新风作浪博客学习(十三)表视图的分组分区和索引分区 .
2013-06-07 08:50 801本次实现的是表视图的分区和索引,代码和前面都差不多,主要还是代 ... -
新风作浪博客学习(十二)代码实现UITableViewCell表视图单元定制 .
2013-06-07 08:49 1001通常情况下我们会希望单元格UITableViewCell显示自 ... -
新风作浪博客学习(十一)UITableViewCell的标记、移动、删除、插入 .
2013-06-06 09:15 1118这篇文章是建立在 代码实现 UITableView与UITa ... -
新风作浪博客学习(十)代码实现 UITableView与UITableViewCell .
2013-06-06 09:14 1155我们常用的表格类视图就是用 UITableView与UITab ... -
新风作浪博客学习(九)两个UIPickerView控件间的数据依赖 .
2013-06-06 09:14 1072本篇实现功能是两个选取器的关联操作,滚动第一个滚轮第二个滚 ... -
新风作浪博客学习(八)代码实现UIPickerView .
2013-06-06 09:14 1284先说一下当个组件选取器,我们创建一个数组NSAray来保存选取 ... -
新风作浪博客学习(七)代码 实现UIDatePicker控件 和 Tab Bar 视图切换 .
2013-06-06 09:15 1108感觉代码写控件都一个理,先在ViewDidLoad中创建控件对 ... -
新风作浪博客学习(六)ios 视图切换翻页效果 .
2013-06-05 11:18 1061本文写的是视图切换,涉及到的内容有 1.实现代码添加Navi ... -
新风作浪博客学习(五)代码实现UISlider 和 UISwitch .
2013-02-18 09:15 1153本次实现的UISlider和UISwi ... -
新风作浪博客学习(四)把plist里数据显示在textField上 .
2013-02-18 09:15 918在代码实现Lable 、textFie ... -
新风作浪博客学习(三)NSBundle读取图片 plist文件和txt文件
2013-02-18 09:15 1731本文想简单介绍一下NSBundle读取图片到视图上,读取pli ... -
新风作浪博客学习(二)代码实现Lable 、textField创建界面以及键盘的处理
2013-02-18 09:15 1174今天写的是用代码实现一个简单界面,代码重复率比较高,可读性不是 ... -
新风作浪博客学习(一)plist文件读写操作
2013-02-18 09:14 1363文件plist 全名Property List,属性列表文件, ... -
GCDiscreetNotificationView提示视图
2013-06-05 11:17 559先看一下效果图: [img] ...
相关推荐
10.6.2 密钥链持久化.....267 10.7 发送和接收文件.....267 10.8 秘诀:构建一个简单的基于Web 的 服务器.....268 10.9 即时消息传送.....272 10.10 小结.....272 第11章Cover Flow 编程......274 11.1 ...
10.6.2 密钥链持久化.....267 10.7 发送和接收文件.....267 10.8 秘诀:构建一个简单的基于Web 的 服务器.....268 10.9 即时消息传送.....272 10.10 小结.....272 第11章Cover Flow 编程......274 11.1 ...
10.6.2 密钥链持久化.....267 10.7 发送和接收文件.....267 10.8 秘诀:构建一个简单的基于Web 的 服务器.....268 10.9 即时消息传送.....272 10.10 小结.....272 第11章Cover Flow 编程......274 11.1 ...
对于iOS应用来说,常见的数据持久化方式有SQLite数据库、Core Data框架、文件系统(如XML、JSON、plist文件)以及UserDefaults等。 本章重点介绍了SQLite数据库的使用。SQLite支持SQL语言,可以创建表、插入、更新...
深入研究这份源码,我们可以学习到iOS应用的生命周期管理、事件处理、图形渲染、游戏循环、碰撞检测、用户输入响应、多线程编程、内存管理、网络请求和数据持久化等方面的知识。同时,也可以通过查看源码了解如何...
在iOS开发领域,iPhone应用程序的开发主要依赖于Apple的Swift编程语言和Xcode集成开发环境。本主题聚焦于“iPhone开发常用代码”,我们将探讨一些在实际项目中经常使用的代码片段和概念,这些对于任何iOS开发者来说...
随着课程的深入,你还将接触到网络请求、数据持久化、动画效果、多线程、第三方库的使用等内容,逐步成长为一名熟练的iOS开发者。国内大学虽然可能尚未广泛开设相关课程,但借助这些公开资源,个人自学也完全可行,...
5. 数据持久化:可能采用Core Data或SQLite存储用户数据。 6. 自定义控件:开发者可能会根据需求定制一些UI组件,提高用户体验。 7. 通知与推送:集成Apple Push Notification服务,实现实时消息推送。 此外,通过...
- 涉及iOS中的数据存储方式,包括使用属性列表(Plist)、SQLite数据库、CoreData框架进行数据持久化。 #### 第14章:嘿!你!上iCloud! - 介绍如何利用iCloud为应用提供云端备份和数据同步的功能,包括使用...
通过分析和运行这些源代码,读者可以了解到如何设置项目结构,创建视图控制器,处理用户输入,使用UIKit框架来构建用户界面,以及如何利用Core Data进行数据持久化。同时,还会涉及到网络请求、动画效果、多线程编程...
学习如何设置数据模型,使用NSManagedObject进行操作,以及执行查询,对于实现数据持久化至关重要。 七、网络编程 iPhone应用通常需要与服务器通信,学习HTTP/HTTPS协议,使用NSURLSession或第三方库如Alamofire...
8. **Core Data**:苹果提供的持久化框架,用于存储应用程序的数据。了解实体、属性、关系和NSManagedObject的使用。 9. **动画与手势识别**:如何利用Core Animation创建平滑的视觉效果,以及添加手势识别器(如...
4. **Core Data**:如果项目涉及到数据持久化,可能会用到Core Data来存储和管理应用的数据。 5. **Storyboard和Auto Layout**:iOS应用通常使用Storyboard来设计UI布局,并使用Auto Layout来实现响应式布局,适应...
《cocos2d-iphone之魔塔20层第五部分》是关于使用cocos2d-iphone框架开发经典游戏——魔塔的一个教程章节。在这个部分,我们将深入探讨如何利用cocos2d-iphone的特性来实现魔塔游戏的第20层的逻辑和交互。 首先,...
它通常会遵循`NSCoding`协议,以便于数据的持久化。 2. **网络请求**:为了获取RSS feed,我们需要进行网络请求。在iOS中,可以使用`NSURLSession`或`NSURLConnection`进行异步数据加载。在源代码中,可能有一个...
此外,还会涉及用户数据持久化,如使用Core Data或SQLite存储玩家进度。 总之,通过对“Tototti-Sendai.iPhone-ver1.3-sample-4c1a743.zip”源代码的深入研究,开发者不仅可以了解iOS游戏的开发流程,还能掌握到iOS...
在本资源中,"ios应用源码之第一个我们小组的iphone程序lmax郎迈" 提供了一个关于iOS应用开发的实例。这个项目可能是由一个名为“lmax郎迈”的团队创建的第一个iPhone应用程序的源代码。从这个源码中,我们可以学习...
- Core Data是苹果提供的对象关系映射框架,用于本地数据持久化。SQLite数据库、Plist文件或用户 Defaults 也是常见的数据存储方式。 - JSON 和 XML 等网络数据可以通过`NSURLSession`或第三方库如AFNetworking...