两年的ios开发经验项目总结_第1页
两年的ios开发经验项目总结_第2页
两年的ios开发经验项目总结_第3页
两年的ios开发经验项目总结_第4页
两年的ios开发经验项目总结_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 / 51 两年的 ios 开发经验项目总结 学习 iOS 开发心得 据说,今年是高校扩招以来,大学毕业生最多的一年,将超700 万,这么多大学生即将走入工作岗位。因此被人们戏称为史上 2016“ 最难就业年 ” 。 我在今年 7月份也即将拿到沉甸甸的大学毕业证书,与同班同学不同的是,我在毕业之前,就参加了无限互联学习 iOS开发,因为通过相关资料,我了解到现在的没有经验和技能的大学生是很难找到一份满意的工作的,所以我期望通过参加技能培训来提升自己的技能。经过将近 4个月的学习,现在我将自己学习经验,及我为什么会选择 iOS 培训学习 iOS开发的原因分享给大家,希望对各位能有所帮助: 我之前从事的是质量检验的工作,工资很低,而且还没有什么技术含量。想要跳槽,也很难找到满意的工作。 这让我很苦闷,于是想要进修, iOS 又是当下热门的一个行业,所以就选择了 iOS。我在北京的几家培训机构都进行了试听,最终选择了无限互联 3G 学院。之所以选择无限互联2 / 51 是因为无限互联无论在课程的安排,师资力量,还是就业这方面都是其他的培训机构不能比的。 由于我并不是计算机专业毕业的,所以起初学起来有点困难。但是老师细致的授课方法和负责认真的授课态度使我建立信心。我相信只要我把老师课上教授的内容弄懂、弄透,我就不会被落下。我就开始一步一步跟着老师的脚步走。每天回家都要复习、消化这一天的内容,并加以练习。所以我的基础知识学的特别的扎实。基础知识阶段是一个量的积累,量积累到一定的程度才会有质的飞跃。正因为我在基础知识阶段这种稳扎稳打的学法,才使我在最后一个月的项目实践中有一个质的飞跃,能力上了一个台阶。 培训结束之后,就开始找工作。因为从未踏入过这个行业,不知道如何面试,有点担心自己是否能找到工作。但在无限互联就业老师的细心指导下,我逐渐建立了信心。而且在面试中遇到的问题,就业老师也不厌其烦的一一进行解答。我真心感谢无限互联就业老师,如果没有他们的帮助,我也不会找到这份让我非常满意的工作。 4 个月的培训证明了我选择的道路是正确的,在这里还认识了很多喜爱开发的朋友,我们在这里一起学习、生活,建立3 / 51 了很深的友谊。感谢无限互联 3G 学院为我们提供了这样一个良好的环境,最后祝福无限互联越办越好,祝各位老师工作顺利愉快,祝福学弟学妹们前程似锦。 悦成移动 移动互联网黄埔 军校 网址: /it/ 或 百度悦成 很多时候,我们不需要关心这个类,我们很少继承这个类,偶尔会调用这个类的 api 来实现一些功能,但是不可否认,这个类是 iOS编程中很重要的一个概念,所以我这里写这个文章来总结以下这个类的信息,如果写的不对的地方,请留言,多谢。 UIApplication 的核心作用是提供了 iOS 程序运行期间的控制和协作工作。 每一个程序在运行期必须有且仅有一个 UIApplication的一个实例。回想一下我在前面的文章 “main 函数研究 ” 的文章4 / 51 中提到的 main 函数的代码,可以看出,在程序开始运行的时候, UIApplicationMain 函数是程序进入点,这个函数做了 很多 工作,其 中一 个重要的 工作 就是创建 一个UIApplication 的单例实例。在你的代码中你,你可以通过调用 UIApplication sharedApplication来得到这个单例实例的指针。 UIApplication 的一个主要工作是处理用户事件,它会起一个队列,把所有用户事件都放入队列,逐个处理,在处理的时候,它会发送当前事件到 一个合适的处理事件的目标控件。此外, UIApplication 实例还维护一个在本应用中打开的 window列表,这样它就可以接触应用中的任何一个 UIView对象。 UIApplication 实例会被赋予一个代理对象,以处理应用程序的生命周期事件、系统事件等等。 新建一个任意类型的 iOS 应用工程,加入我们在 Class Prefix 输入是 TC,我们可以看到工程中生成一个类: TCAppDelegate :UIResponder 5 / 51 这里这个类的基类是 UIResponder,和以前生成的工程是不同的,以前是继承自 NSObject。不论如何,本类实现了一个名叫 UIApplicationDelegate 的接口,这个表明这个类就是这个工程中 UIApplication实例的代理类。 在 main函数中, autoreleasepool returnUIApplicationMain(argc, argv, nil,NSStringFromClass(TCAppDelegateclass); 这里传入了代理类到 UIApplicationMain 函数中, UIApplicationMain 函数在生成唯一个 UIApplication 6 / 51 的时候就可以把代理类的实例指针告诉这个 单例对象了。 可以通过如下代码获 UIApplication 代理对象: TCAppDelegate *myDelegate = (TCAppDelegate *)UIApplication sharedApplication.delegate; 在 UIApplication 接收到系统事件和生命周期事件时,会把相应的事件传递给 UIApplicationDelegate 进行处理,下表所列的生命周期函数大都是可选的,但为了应用程序的健壮性程序员应该实现它们。 1、 - (void)applicationWillResignActive:(UIApplication *)application 说明:当应用程序将要入非活动状态执行,在 此期间,应用程序不接收消息或事件,比如来电话了 7 / 51 2、 - (void)applicationDidBecomeActive:(UIApplication *)application 说明:当应用程序入活动状态执行,这个刚好跟上面那个方法相反 3 、 - (void)applicationDidEnterBackground:(UIApplication *)application 说明:当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可 4 、 - (void)applicationWillEnterForeground:(UIApplication *)application 说明:当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。 5 、 - (void)applicationWillTerminate:(UIApplication *)application 8 / 51 说明:当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend 的键值。 6 、 - (void)applicationDidReceiveMemoryWarning:(UIApplication *)application 说明: iPhone设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,在终止前会执行这个方法,通常可以在这里进行内存清理工作防止程序被终止 7 、 - (void)applicationSignificantTimeChange:(UIApplication*)application 说明:当系统时间发生改变时执行 8 、 - (void)applicationDidFinishLaunching:(UIApplication*9 / 51 )application 说明:当程序载入后执行 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 10 / 51 didChangeStatusBarOrientation:(UIInterfaceOrientation)oldStatusBarOrientation 说明:当 StatusBar 框方向变化完成后执行 13、 - (void)application:(UIApplication*)application didChangeSetStatusBarFrame:(CGRect)oldStatusBarFrame 说明:当 StatusBar 框变化完成后执行 iPhone 中的应用程序很容易受到打扰,比如一个来电可能导致应用程序失去焦点,如果这个时候接听了电话,那么应用程序会转到后台运行。还有很多其它类似的事件会导致iPhone 应用程序失去焦点,在应用程序失去焦点前会调用委托类的 applicationWillResignActive()方法,而应用程序再 次 获 取 到 焦 点 的 时 候 会 调 用applicationDidBecomeActive()方法。比如在运行应用程序的 时 候 锁 屏 会 调 用 委 托 类 的applicationWillResignActive()方法,而当屏幕被解锁的时候,又会调用 applicationDidBecomeActive()方法。 11 / 51 另 外 一 个 非 常 重 要 的 方 法 就 是applicationDidReceiveMemoryWarning(),因为 iPhone 设备只有有限的内存,如果为应用程序分配了太多内存操作系统会终止应用程序的运行,但在终止之前操作系统会通 过先调用委托类的 applicationDidReceiveMemoryWarning()方法警告应用程序,在 UIApplication 接收到这个事件后它会传递给委托类的 applicationDidReceiveMemoryWarning()方法,委托类在这个方法内可以进行释放内存的操作以防止操作系统强制终止应用程序的运行。 下面是这个类的一些功能: 1.设置 icon 上的数字图标 /设置主界面 icon 上的数字图标,在中引进,缺省为 0 UIApplicationsharedApplication.applicationIconBadgeNumber = 4; 12 / 51 2.设置摇动手势的时候,是否支持 redo,undo操作 /摇动手势,是否支持 redo undo 操作。 /以后引进,缺省 YES UIApplicationsharedApplication.applicationSupportsShakeToEdit =YES; 3.判断程序运行状态 /判断程序运行状态,在以后引入 if(UIApplicationsharedApplication.applicationState =UIApplicationStateInactive) NSLog(程序在运行状态 ); 4.阻止屏幕变暗进入休眠状态 /阻止屏幕变暗 ,慎重使用 ,缺省为 no 13 / 51 UIApplicationsharedApplication.idleTimerDisabled =YES; 慎重使用本功能,因为非常耗电。 5.显示联网状态 /显示联网标记 UIApplicationsharedAworkActivityIndicatorVisible =YES; 6.在 map 上显示一个地址 NSString* addressText Infinite Loop, Cupertino, CA 95014; / URL encode the spaces addressText = 14 / 51 addressTextstringByAddingPercentEscapesUsingEncoding: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:NSU15 / 51 TF8StringEncoding; 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 16 / 51 UIApplicationsharedApplicationopenURL:NSURLURLWithString:http:/; 苹果系统凭借其流畅的系统和良好的用户体验赢得了一致好评,由于对 ios 系统有浓厚的兴趣,所以最近一直对苹果ios 系统有关注度。今年以来一直在学习有关 ios 方面的知识,最近利用空余时间分享一些我在扣丁学堂在 线学习的一些有关学习 ios 的方法,希望能够帮助大家研究 iphone 和ipad。做程序的都知道, iphone和 ipad都是用 Objective-C语言来开发的,所以一般情况在学习 ios 之前,最好有一定的 Objective-C 基础。学习之前了解和学习一些关于Objective-C 的语法基础和规则对往后帮助是非常大的。如果之前有一定的 C 和 C+还有 Java 的基础,学习起来会更加容易上手,因为各种语言具有一定的联系性。但不管是学习Objective-C 语言,还是学习 ios,很多朋友都是只看书本上的例子,没有进行实际 的操作,这对往后真刀真枪做项目的时候会有很大的压力。在苹果机上,在 Xcode 和 Interface Builder 开发环境中,按部就班的 “ 抄 ” 些应用程序。而很少去思考,没有去多问几个为什么。这是学习的大忌,所以一定要经常总结自己的学习方法,发现错误要及时作出调整。孔子说,学而不思则罔,思而不学则殆。几千年之前孔17 / 51 子这句话对现在的我们来说作用还是很大的,告诉我们学和思是要结合的,这样才能进步。每天晚上回去要多问几个为什么 ?问问自己学到了多少 ?照着书上的例子,一个一个做下来,只要不是文盲,做到举一反三,这样才有更好 的效果。所以通过我个人的案例我提醒大家,以后的学习中,一定要多问自己几个为什么,多向有经验的人请教,不要碍于面子。除此之外还有一点就是坚持,坚持是非常重要的,我看重苹果未来的发展,所以我一定要坚持下去,也许别人很容易就学会了的东西,我要学很久,但没关系,因为我始终相信 “ 勤能补拙 ” 这句话 !以后一定要多请教有经验的朋友、多看点书,在这里也要感谢一下那些帮助过我的老师,他们对我学习中极大的帮助,每次有不懂得问题,都及时得到了他们的回答。也从中学到了很多。 IOS开发总结 by mhmwadm 2016/4/10 1 XCode 快捷键 .18 / 51 .4 2 Objective-C.5 代码混编 . 5 代 码 中 字 符 串 换行 .19 / 51 . 5 不要调用 super release . 5 判 断 一 个 字 符 串 是 否 包 含 另 一 个 字 符串 : . 5 没有用到类的成员变量的,都写成类方法 .20 / 51 . 6 category 可 以 用 来 调试 . 6 Category 与Extension . 7 Categories Add Methods to Existing Classes .21 / 51 . 7 Class Extensions Extend the Internal Implementation . 7 引用 . 7 block .22 / 51 . 8 property 重命名 . 10 重写description . 11 Archive and serialise .23 / 51 . 11 Mutability Determines Whether a Represented Value Can Be Changed . 12 Use new to Create an Object If No Arguments Are Needed for Initialization . 12 Literals Offer a Concise Object-Creation Syntax . 13 property 的属24 / 51 性 . 14 Represent Other

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论