《ObjectiveC1概述》PPT课件.ppt_第1页
《ObjectiveC1概述》PPT课件.ppt_第2页
《ObjectiveC1概述》PPT课件.ppt_第3页
《ObjectiveC1概述》PPT课件.ppt_第4页
《ObjectiveC1概述》PPT课件.ppt_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

第一章,Objective-C概述,课程目标,掌握Objective-C语言基础知识 理解面向对象的编程思想 为进行iOS开发作准备,本章目标,苹果产品体系 iOS以及SDK的发展历史 认识Objective-C 了解Xcode开发工具的安装和使用 编写Hello World程序,课程内容,第一章:objective-c概述 第二章:objective-c语言基础 第三章:面向对象编程 第四章:Foundation 第五章:类别与协议 第六章:内存管理 第七章:文件对象 第八章:复制、归档与单例 第九章:KVC、KVO和谓词,教学方法,互动式教学 理论-实战-再理论-再实战 注重结合项目代码实践,锻炼解决问题的能力,学习基础知识 掌握的越牢固越好 这个是必须要掌握的 解决问题的三个方法: 看SDK,看官方文档 找google和baidu 最后问老师,学习方法,学习课件 独立完成作业 写学习笔记 自学能力 读 仿 写 查 其他:英语阅读能力,苹果产品体系,iOS设备 iPod touch iPhone iPad Mac OS X Macbook Macbook Pro Macbook Air Mac Pro/iMac,iOS以及SDK的发展历史,2007年6月 iPhone OS 1.0 2008年3月 正式发布iPhone OS 2008年7月 Apple推出了革命性的商业模式Appstore 2008年8月 iPhone OS 2.0 2009年6月 iPhone OS 3.0随着iPhone 3GS一起发布 2010年4月 iPad发布,同时iPhone OS 3.2 2010年6月 iPhone OS正式更名为“iOS”,iOS4.0发布 2011年10月 iOS5.0与iPhone4S一起发布 2012年9月 iOS6.0与iPhone5一起发布 2013年9月 iOS7.0发布 2014年6月 swift发布,Objective-C简介,C语言的一个扩展集,一种面向对象的语言 C+和Objective-C都是从C语言发展来的面向对象语言,但C+更多的是在编译期的面向对象,Objective-C更多的是在运行期的面向对象,Objective-C历史并不比C+短,两者可以认为没联系 苹果的OS X和iOS操作系统上进行软件开发的主要编程语言 Objective-C没有太多公开的版本号,到现在使用的Objective-C 2.0 支持的编译器有 GCC 、Clang和 LLVM 开发工具(Xcode),Objective-C、Cocoa和框架(Framework),Cocoa,Foundation框架,AppKit框架,Mac OSX应用程序,Cocoa Touch,Foundation框架,UIKit框架,iOS应用程序(iPhone/iPad),Objective-C,Objective-C的内存管理,Mac OS X支持GC,10.8以后取消 iOS不支持GC 在C/C+等语言中,程序员负责回收内存 在Objective-C中同样需要手动管理内存 iOS5.0以后开始引入自动内存管理(ARC),开发工具,Xcode:是苹果公司的集成开发环境的发动机,它负责绝大多数的开发工作 Inteface Builder:它是一个用于创建用户界面的图形工具 iphone模拟器:当临时查看效果时,可以很方便地使用模拟器进行查看 在开发中,Xcode与Inteface Builder是紧密结合的,Xcode,Inteface Builder,iphone模拟器,Xcode的安装,下载Xcode安装文件 双击运行安装文件 可将Xcode图标拖进Dock工具栏方便使用,例:第一个Objective-C程序,Xcode 4.3以下: #import int main (int argc, const char * argv) NSAutoreleasePool * pool = NSAutoreleasePool alloc init; / insert code here NSLog(“Hello World!“); pool drain; return 0; ,Xcode 4.3以上: #import int main(int argc, const char * argv) autoreleasepool / insert code here. NSLog(“Hello, World!“); return 0; ,常见扩展名,Xcode创建新程序的步骤,注释,单行注释:使用连续的斜杠(/) 多行注释:使用/*开头,*/结尾 不能嵌套使用 好处 比较清晰的指出该段程序用意 有利于团队合作,有利于后期的代码维护,#import ,告诉编译器导入Foundation框架中的Foundation.h主头文件,main函数,格式:int main (int argc, const char * argv) 每一个程序有且只有一个main函数 表示程序将在何处开始执行。 return 0; 0:程序正常 非0:通常表示出现了一些问题(如:很可能无法找到程序所需的文件),Objective-C与其它OOP语言比较,对象方法名字解析不同,Objective-C的方法名字解析是函数名称 + 参数名称,而 C+ 只包括函数名称 。下面是对象无参数方法调用:,Objective-C与其它OOP语言比较,下面是对象一个参数方法调用:,Objective-C与其它OOP语言比较,下面是对象多个参数方法调用:,内存管理,/可以理解为在内存中开辟了一块共用的内存空间 NSAutoreleasePool * pool = NSAutoreleasePool alloc init; 内存管理在IOS开发中的非常重要的 /释放共用的内存空间 pool drain;,NSLog函数,NSLog是Objective-C库中的一个函数,功能和使用方法类似c语言中printf函数 作用:向控制台输出格式化文本内容 附带显示内容:执行的时间、程序名等等 示例: NSLog (“this is a test“); NSLog (“string is :%“, string); NSLog (“x=%d, y=%d“, 10, 20);,转义字符及其作用,例:该程序输出什么内容?,#import int main (int argc, const char * argv) NSAutoreleasePool * pool = NSAutoreleasePool alloc init; /- NSLog(“nTesting.n1n.2n3“); /- pool drain; return 0; ,格式化输出字符,例:输出加法结果,#import int main (int argc, const char * argv) NSAutoreleasePool * pool = NSAutoreleasePool alloc init; /- int sum ; sum = 50+20; NSLog(“%d“,sum); /- pool drain; return 0; ,程序的执行过程,硬盘,程序,程序的执行过程,硬盘,程序,内存,1.Load代码到内存区,程序的执行过程,硬盘,程序,内存,1.Load代码到内存区,程序的执行过程,硬盘,程序,内存,操作系统代码,1.Load代码到内存区,程序的执行过程,硬盘,程序,内存,程序代码,操作系统代码,1.Load代码到内存区,程序的执行过程,硬盘,程序,内存,程序代码,操作系统代码,1.Load代码到内存区,2.从main函数开始执行,程序的执行过程,硬盘,程序,内存,程序代码,操作系统代码,1.Load代码到内存区,2.从main函数开始执行,3. 执行过程中的内存管理,程序的执行过程,硬盘,程序,内存,程序代码,操作系统代码,存放代码,代码区,1.Load代码到内存区,2.从main函数开始执行,3. 执行过程中的内存管理,程序的执行过程,硬盘,程序,内存,程序代码,操作系统代码,静态变量和字 符串常量,存放代码,数据区,代码区,1.Load代码到内存区,2.从main函数开始执行,3. 执行过程中的内存管理,程序的执行过程,硬盘,程序,内存,程序代码,操作系统代码,局部变量,静态变量和字 符串常量,存放代码,栈,数据区,代码区,1.Load代码到内存区,2.从main函数开始执行,3. 执行过程中的内存管理,程序的执行过程,硬盘,程序,内存,程序代码,操作系统代码,Alloc创建 的数据,局部变量,静态变量和字 符串常量,存放代码,堆,栈,数据区,代码区,1.Load代码到内存区,2.从main函数开始执行,3. 执行过程

温馨提示

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

评论

0/150

提交评论