从零开始学iOS7开发系列教程事务管理软件开发实战Chapter12.pdf

从零开始学iOS7开发系列教程事务管理软件开发实战Chapter12.pdf

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
从零开始学iOS7开发系列教程事务管理软件开发实战Chapter12.pdf

从零开始学iOS7开发系列教程-事务管理软件开发实战-Chapter12 版权声明: 原⽂及⽰例代码来⾃raywenderlich store中的iOS Apprentice 系列2教程,经过翻译和改编。 版权归原作者所有,本系列教程仅供学习参考使⽤,感兴趣的朋友建议购买原教程(http:// /store/ios-apprentice)。 版本说明: 为了保证与时俱进,⺫前采⽤的开发环境是:Xcode 5.1 beta2 + iOS7.1beta2 欢迎继续我们的学习。 回过头来看看,在短短11章的内容中,我们已经接触了iOS开发的很多重要知识点。相信在本系列 教程完成后,我们就可以⾃豪的宣传⾃⼰对于iOS开发算是真正的⼊⻔了。 ⺫前来说,对于⽤户新添加到列表中的事项,只要退出应⽤就会⾃动消失。我们也可以尝试删除或 修改列表中的五个默认事项。不过⼀旦重新启动应⽤,我们所做的⼀切似乎从未发⽣过。显然真实 世界中的应⽤不应该也不可能是这样来运作的。 感谢iOS新的多任务特性,现在当我们关闭某个应⽤的时候它会驻留在内存中。虽然它会进⼊某种类 似休眠的状态,但所有的数据信息仍然保持原貌。在正常情况下,⽤户永远不会终⽌某个应⽤,⽽ 只是让它“悬停”在后台。不过在某些情况下,⽐如当iPhone内存不⾜的时候,iOS系统会⾃动清理掉 后台那些还在休眠的应⽤,从⽽清理出⼀些内存出来。⽽且在某些情况下,只要⽤户愿意,他们可 以⼿动kill掉后台中的应⽤,或者干脆reset整个设备。 显然将待办事项列表保留在内存中并不⾜以让它们永远活下去。因此,我们需要将数据保存在 iPhone的闪存存储空间的⽂件中。这就好⽐你在电脑上写⽂章的时候过⼀会⼉就要保存⼀下,只不 过iPhone应⽤应该具备⾃动保存的功能。没必要为此去⿇烦⽤户触碰某个Save按钮。 在上图中,左侧是没有数据持久保存的情况下,当某种情况(内存不⾜,⽤户⼿动kill掉后台的应⽤ 等)发⽣时,⽤户所添加的数据会消失⽆影踪。⽽右侧则是有数据持久保存的情况,⽆论何时,⽤ 户所添加的数据都会完好⽆损。 在接下来的这部分内容中,我们将要学习: 1.为了让代办事务清单中的事项可以持久保存,判断该把保存这些信息的⽂件放到⽂件系统的何 处。 2.当⽤户更改代办事项时(如添加⼀个新项⺫,开启/关闭勾选标志等),将待办事项保存到⽂件 中。 3.当应⽤重新启动时从该⽂件加载代办事项清单。 好了,⺫标已定,接下来就是该如何具体实现了。 iOS中的⽂件⺫录 iOS应⽤居住在⼀个与世隔绝的桃花源中,世⼈称之为“沙盒”。简单来说,每个应⽤都有⾃⼰的特定 ⺫录⽤来保存⽂件和各类信息,但却不能访问其它应⽤的⺫录或⽂件。 想象⼀个庞⼤⽆⽐的虚拟世界,在这个世界中所有的居民都⽣活在⼀个名为“沙盒”的⼦系统中。作为 这个世界的⼀员,你可以通过沙盒和⺟系统进⾏交互,但却不能和任何⽣活在其它“沙盒” 中的居民直 接交流。这个貌似颇有些Matrix (⿊客帝国)的影⼦。 苹果之所以这样设计并⾮因为变态,⽽是为了安全考虑。通过这种沙盒机制,可以有效防⽌恶意软 件或者病毒的侵袭。相⽐Android系统来说,iOS系统在安全性能⽅⾯的确要技⾼⼀筹。因为任何⼀ 个应⽤只能破坏沙盒中属于⾃⼰的⽂件,就不可能破坏系统其它的部分。 在iOS中,应⽤可以将⽂件保存在所谓的”documents” ⺫录中。⽽这个⺫录将永远⽣活在应⽤的沙盒 之中。当⽤户使⽤iTunes或iCould备份时,Documents⽂件中的⽂件也会被备份。当开发者发布了 ⼀个新版本时,⽤户会安装更新内容,但Documents⽂件夹却依然完好⽆损。因此任何保存在该⽂ 件中的数据可谓延年益寿不必时时刻刻战战兢兢被删除。 好吧,理论知识就这些,让我们看看如何具体操作。 打开Xcode,切换到ChecklistsViewController.m ,然后在viewDidLoad⽅法之后添加以下⽅法: -(NSString*)documentsDirectory{ NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths firstObject]; return documentsDirectory; } -

文档评论(0)

ziyouzizai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档