




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 23 ios 开发项目经验总结 悦成移动 移动互联网黄埔军校 网址: /it/ 或 百度悦成 很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的 api 来实现一些功能,但是不可否认,这个类是 iOS编程中很重要的一个概念,所以我这里写这个文章来总结以下这个类的信息,如果写的不对的地方,请留言,多谢。 UIApplication 的核心作用是提供了 iOS 程序运行期间的控制和协作工作。 每一个程序在运行期必 须有且仅有一个 UIApplication的一个实例。回想一下我在前面的文章 “main 函数研究 ” 的文章中提到的 main 函数的代码,可以看出,在程序开始运行的2 / 23 时候, UIApplicationMain 函数是程序进入点,这个函数做了 很多 工作,其 中一 个重要的 工作 就是创建 一个UIApplication 的单例实例。在你的代码中你,你可以通过调用 UIApplication sharedApplication来得到这个单例实例的指针。 UIApplication 的一个主要工作是处理用户事件,它会起一个队列,把所有用户事件都放入队列,逐个处理,在处理的时候,它会发送当前事件到一个合适的处理事件的目标控件。此外, UIApplication 实例还维护一个在本应用中打开的 window列表,这样它就可以接触应用中的任何一个 UIView对象。 UIApplication 实例会被赋予一个代理对象,以处理应用程序的 生命周期事件、系统事件等等。 新建一个任意类型的 iOS 应用工程,加入我们在 Class Prefix 输入是 TC,我们可以看到工程中生成一个类: TCAppDelegate :UIResponder 这里这个类的基类是 UIResponder,和以前生成的工程是不3 / 23 同的,以前是继承自 NSObject。不论如何,本类实现了一个名叫 UIApplicationDelegate 的接口,这个表明这个类就是这个工程中 UIApplication实例的代理类。 在 main函数中, autoreleasepool returnUIApplicationMain(argc, argv, nil,NSStringFromClass(TCAppDelegateclass); 这里传入了代理类到 UIApplicationMain 函数中, UIApplicationMain 函数在生成唯一个 UIApplication 的时候就可以把代理类的实例指针告诉这个单例对象了。 4 / 23 可以通过如下代码获 UIApplication 代理对象: TCAppDelegate *myDelegate = (TCAppDelegate *)UIApplication sharedApplication.delegate; 在 UIApplication 接收到系统事件和生命周期事件时,会把相应的事件传递给 UIApplicationDelegate 进行处理,下表所列的生命周期函数大都是可选的,但为了应用程序的健壮性程序员应该实现它们。 1、 - (void)applicationWillResignActive:(UIApplication *)application 说明:当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了 2、 - (void)applicationDidBecomeActive:(UIApplication 5 / 23 *)application 说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反 3 、 - (void)applicationDidEnterBackground:(UIApplication *)application 说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可 4 、 - (void)applicationWillEnterForeground:(UIApplication *)application 说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。 5 、 - (void)applicationWillTerminate:(UIApplication *)application 6 / 23 说明:当程序将要退出是被调用,通常是用来保存 数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend 的键值。 6 、 - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 说明: iPhone设备只有有限 的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止 7 、 - (void)applicationSignificantTimeChange:(UIApplication*)application 说明: 当系统时间发生改变时执行 8 、 - (void)applicationDidFinishLaunching:(UIApplication*)application 7 / 23 说明:当程序载入后执行 9、 - (void)application:(UIApplication)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame 说明:当 StatusBar 框将要变化时执行 10、 - (void)application:(UIApplication*)application willChangeStatusBarOrientation: (UIInterfaceOrientation)newStatusBarOrientation duration:(NSTimeInterval)duration 说明:当 StatusBar 框方向将要变化时执行 11、 - (BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url 说明:当通过 url执行 12、 - (void)application:(UIApplication*)application 8 / 23 didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation 说明:当 StatusBar 框方向变化完成后执行 13、 - (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame 说明:当 StatusBar 框变化完成后执行 iPhone 中的应用程序很容易受到打扰,比如一个来电可能导致应用程序失去焦点,如果这个时候接听了电话,那么应用程序会转到后台运行。还有很多其它类似的事件会导致iPhone 应用程序失去焦点,在应用程序失去焦点前会调用委托类的 applicationWillResignActive()方法,而应用程序再 次 获 取 到 焦 点 的 时 候 会 调 用applicationDidBecomeActive()方法。比如在运行应用程序的 时 候 锁 屏 会 调 用 委 托 类 的applicationWillResignActive()方法,而当屏幕被解锁的时候,又会调用 applicationDidBecomeActive()方法。 9 / 23 另 外 一 个 非 常 重 要 的 方 法 就 是applicationDidReceiveMemoryWarning(),因为 iPhone 设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,但在终止之前操作系统会通过先调用委托类的 applicationDidReceiveMemoryWarning()方法警告应用程序,在 UIApplication 接收到这个事件后它会传递给委托类的 applicationDidReceiveMemoryWarning()方法,委托类在这个方法内可以进行释放内存的操作以防止操作系统强制终止应用程序的运行。 下面是这个类的一些功能: 1.设置 icon 上的数字图标 /设置主界面 icon 上的数字图标,在中引进,缺省为 0 UIApplicationsharedApplication.applicationIconBadgeNumber = 4; 2.设置摇动手势的时候,是否支持 redo,undo操作 10 / 23 /摇动手势,是否支持 redo undo 操作。 /以后引进,缺省 YES UIApplicationsharedApplication.applicationSupportsShakeToEdit =YES; 3.判断程序运行状态 /判断程序运行状态,在以后引入 if(UIApplicationsharedApplication.applicationState =UIApplicationStateInactive) NSLog(程序在运行状态 ); 4.阻止屏幕变暗进入休眠状态 /阻止屏幕变暗,慎重使用 ,缺省为 no 11 / 23 UIApplicationsharedApplication.idleTimerDisabled =YES; 慎重使用本功能,因为非常耗电。 5.显示联网状态 /显示联网标记 UIApplicationsharedAworkActivityIndicatorVisible =YES; 6.在 map 上显示一个地址 NSString* addressText Infinite Loop, Cupertino, CA 95014; / URL encode the spaces addressText = addressTextstringByAddingPercentEscapesUsingEncodi12 / 23 ng:NSASCIIStringEncoding; NSString* urlText = NSStringstringWithFormat:http:/maps?q=%, addressText; UIApplicationsharedApplicationopenURL:NSURLURLWithString:urlText; 7.发送电子邮件 NSString *recipients from California!; NSString *body is raining in sunny California!; NSString *email = NSStringstringWithFormat:, recipients, body; email = emailstringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding; 13 / 23 UIApplicationsharedApplicationopenURL:NSURLURLWithString:email; 8.打电话到一个号码 / Call Google 411 UIApplicationsharedApplicationopenURL:NSURLURLWithString:tel:/8004664411; 9.发送短信 / Text to Google SMS UIApplicationsharedApplicationopenURL:NSURLURLWithString:sms:/466453; 10.打开一个网址 / Lanuch any iPhone developers fav site 14 / 23 UIApplicationsharedApplicationopenURL:NSURLURLWithString:http:/; 学习 iOS 开发心得 据说,今年是高校扩招以来,大学毕业生最多的一年,将超700 万,这么多大学生即将走入工作岗位。因此被人们戏称为史上 2016“ 最难就业年 ” 。 我在今年 7月份也即将拿到沉甸甸的大学毕业证书,与同班同学不同的是,我在毕业之前,就参加了无限互联学习 iOS开发,因为通过相关资料,我了解到现在的没有经验和技能的大学生是很难找到一份满意的工作的,所以我期望通过参加技能培训来提升自己的技能。经过将近 4个月的学习,现在我将自己学习经验,及我为什么会选择 iOS 培训学习 iOS开发的原因分享给大家,希望对各位能有所帮助: 我之前从事的是质量检验的工作,工资很低,而且还没有什么技术含量。想要跳 槽,也很难找到满意的工作。 这让我很苦闷,于是想要进修, iOS 又是当下热门的一个行业,所以就选择了 iOS。我在北京的几家培训机构都进行了试听,最终选择了无限互联 3G 学院。之所以选择无限互联15 / 23 是因为无限互联无论在课程的安排,师资力量,还是就业这方面都是其他的培训机构不能比的。 由于我并不 是计算机专业毕业的,所以起初学起来有点困难。但是老师细致的授课方法和负责认真的授课态度使我建立信心。我相信只要我把老师课上教授的内容弄懂、弄透,我就不会被落下。我就开始一步一步跟着老师的脚步走。每天回家都要复习、消化这一天的内容,并加以练习。所以我的基础知识学的特别的扎实。基础知识阶段是一个量的积累,量积累到一定的程度才会有质的飞跃。正因为我在基础知识阶段这种稳扎稳打的学法,才使我在最后一个月的项目实践中有一个质的飞跃,能力上了一个台阶。 培训结束之后,就开始找工作。因为从未踏入过这个行业,不知道如何面试,有点担心自己是否能找到工作。但在无限互联就业老师的细心指导下,我逐渐建立了信心。而且在面试中遇到的问题,就业老师也不厌其烦的一一进行解答。我真心感谢无限互联就业老师,如果没有他们的帮助,我也不会找到这份让我非常满意的工作。 4 个月的培训证明了我选择的道路是正确的,在这里还认识了很多喜爱开发的朋友,我们在这里一起学习、生活,建立16 / 23 了很深的友谊。感谢无限互联 3G 学院为我们提供了这样一个良好的环境,最后祝福无限互联越办越好,祝各位老师工作顺利愉快,祝福学弟学妹们前程似锦。 我的 iOS 培训经历 以下是我学习 iOS 培训的经历,从最初的知之甚少到了解到整个 iOS 培训经历,现在分享给大家,其中包括我的感受,也有我的一些关于 iOS培训 iOS开发的建议,见笑了。 经常有人问,我 24 岁了,现在到目前为止任何语言不会,专业也跟 IT方面相差甚远,但是个人一直都对 IT这方面非常感兴趣,再加上现在 iOS行业这么的有发展前景,所以很想要学习 iOS开发,不知道行 不行啊 ?希望大家给一些建议, 下面给出的一些建议,希望可以帮到更多的朋友: 1、首先你只要喜欢这个行业,不要说 24岁 ,34 岁都没问题。 2、最难的是坚持,这不是套话,我最 初学 iOS 开发的那个月,几近放弃,很多东西都弄不明白,天天心情很差度过这四个月的 iOS培训期前途一片光明。 17 / 23 3、如果要自学,先了解学习一些 objective-c 的知识,可以买一些书籍或下载一些电子书学习 ; 4.熟悉 xcode的一些操作使用 ,创建 一些 project,编译运行 ,尝试 用书中的例子联系。把基本的概念知识搞清楚以后, 5.说完专业性的技术问题之后,那就是动手做东西了,也就是实训很重要,试着做几个案例,我相信做完之后,一定会事半功倍的。 知识点: 这里我只列一些 iOS的主要知识点: objective -C 部分 cocoaTouch 框架部分 XCODE 使用部分 项目经验部分 前三部分的内容,基本是按面试官考察面试者的知识点的掌握情况,唯独项目经验,是面试者向面试官18 / 23 展示,可以提前练习下项目介绍,做到有层次,有重点 (根据不同的职位有不同的重点 ),例如,作为软件开发人员参与了 iPad 的点餐系统开发,完成了图片菜单显示的代码,遇到了 scroll view 显示大图片效率问题,用懒加载的方式解决了该问题。 虽然相关知识点明白了,但是面试的过程中的表现也同样重要 ; 实事求是的答题 刚毕业求职时,特害怕一道题目打不出来就直接被 pass掉,这也是新手求职的过程,确实会遇到,如果是特别基础题,建议回去加强基础知识。但对于一般面试,一两道题回答不出来,是非常正常的,在这样技术信息不断更新的时代,在牛的人技术都不能面面俱到。 以我自己面试别人的经验,senior 些的面试官,都会了解 面试人员肯定有一些问题不了解,所以会从各个方面的问题都会涉及到,然后对面试者做一个综合评价。对于面试过程中,遇到自己不熟悉的领域,一定要实事求是,不了解就是不了解,了解一点就说一点,一定不要知道一点就装资深,上来就是:这个知道,简单的很,哪个做过,不复杂。 然后面试官继续深入的问些细的技术 点,就开始找理由: 19 / 23 这个太久了,那个模块是别人实现的 ,这倒不要上升到道德诚信,因为面试过程总会有一些表面上的东西,从面试官的角度来说,首先他能面试你,一般是比你资深,其次面试的问题,面试官一定挑选过,所以在这上面抱着蒙混过关的心理,是有点天真的。在自己擅长的技术点与面试官进行深层次的沟通,能得到加分,技术点的知识都是可以再学的,对于问题的抽象深度,往往决定一个程序员解决问题的能力。 为什么学 iOS开发 ?相信这也是很多人想了解的,不明白为什么有那么人想去学 iOS开发,甚至自己学 iOS开发,都不知道是为什 么去学的,那么下面就介绍一下我学 iOS 开发的原因,给大家分享一下: 很久很久以前,在没有智能手机的时代就有做移动应用的想法了,不过当时不知道是不是叫移动应用,那时候的智能手机不太智能,应用也不那么好用。由于当时还在上学,只是有这个想法,并没实践,也不知道怎么把程序装到手机里。后来塞班系统火了,就买了一本塞班的书,但是工作忙碌也就没看 (庆幸 ing.),再后来安卓 /iOS火了,开始准备学安卓,买了 一堆教材,写了一大堆各式各样的 hello word,不过看安卓的系统架构,上面还弄个 java 虚拟机一样的运行时环境,很反感 (一直从事 unix/c 语言方面的工20 / 23 作 )。在后来就发现 ios用 oc开发,看名字, oc好像和 c差不多,对 c有好感,于是一边工作一边学。 一边学一边想着月入百万。总觉得写出来应用放在商店里就能变成暴发户了。正巧当时在一家大公司工作,虽然薪水还可以,但是每天写那 些毫无技术含量的模块,说实话那根本就用不着程序员来做,只要长个手,会复制粘贴就可以去做了。这种工作对自己的技术人生毫无帮助,唯一的收获就是发薪水。行尸走肉的过了不知道多久,决定辞职,全职自己做 ios算了。 于是就在这样的情况下,我才开始学 iOS开发,还是因为 OC,所以才选择的 iOS 开发,以后的学习就不跟大家详细讲了。 苹果系统凭借其流畅的系统和良好的用户体验赢得了一致好评,由于对 ios 系统有浓厚的兴趣,所以最近一直对苹果ios 系统有关注度。今年以来一直在学习有关 ios 方面的知识,最近利用空余时间分享一些我在扣丁学堂学习 ios有关的方法,希望能够帮助大家研究 iphone 和 ipad。做程序的都知道, iphone和 ipad都是用 Objective-C语言来开发的,所以一般情况在学习 ios 之前,最好有一定的 Objective-C基础。学习之前了解和学习一些关于 Objective-C 的语法基21 / 23 础和规则对往后帮助是非常大的。如果之前有一定的 C和 C+还有 Java 的基础,学习起来会更加容易上手,因为各种语言具有一定的联系性。但不管是学习 Objective-C 语言,还是学习 ios,很多朋友都是只看书本上的例子,没有进行实际的操作,这对往后真刀真枪做项目的时候会有很大的压力。在苹果机上,在 Xcode和 Interface Builder 开发环境中,按部就班的 “ 抄 ” 些应用程序。而很少去思考,没有去多问几个为什么。这是学习的大忌,所以一定要经常总结自己的学习方法,发现错误要及时作出调整。孔子说, 学而不思则罔,思而不学则殆。几千年之前孔子这句话对现在的我们来说作用还是很大的,告诉我们学和思是要结合的,这样才能进步。每天晚上回去要多问几个为什么 ?问问自己学到了多少 ?照着书上的例子,一个一个做下来,只要不是文盲,做到举一反三,这样才有更好的效果。所以通过我个人的案例我提醒大家,以后的学习中,一定要多问自己几个为什么,多向有经验的人请教,不要碍于面子。除此之外还有一点就是坚持,坚持是非常重要的,我看重苹果未来的发展,所以我一定要坚持下去,也许别人很容易就学会了的东西,我要学很久,但没关系,因为我始终相信 “ 勤能补拙 ” 这句话 !以后一定要多请教
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家政服务合同协议书
- Unit 2 单元整体说课稿 2023-2024学年人教版八年级英语下册
- 关于读书活动总结(集合15篇)
- 2025山东菏泽高新城市建设投资有限公司招聘考试12人笔试题库及答案详解
- 抵押物品抵押管理与风险控制合同
- 建设用地地勘合同示范文本(工业用地)
- 出差人员安全保障及费用报销合同范本
- 文化创意担保借款合同示范文本
- 事业单位合同签订风险评估与防范措施合同
- 《国有企业改革中员工转岗劳务派遣专项合同》
- 农村处理矛盾纠纷课件
- 厂房搬迁管理办法
- 保险学考试题(附答案)
- 中药处方点评管理办法
- 国企纪法教育实施路径
- 药品发放登记管理制度
- 临床科室科研管理制度
- 铁艺围栏采购合同
- 中国皮肤基底细胞癌诊疗指南2023
- 卫星通信技术在电力行业中的应用场景分析
- 黄旭华人物介绍
评论
0/150
提交评论