• 1. 演讲人:王益南iOS开发技术入门和基础知识十月 24, 20181
  • 2. 十月 24, 20182课程内容1iOS开发入门 iOS概述和架构介绍 iOS开发限制介绍 Hello World实例演示 iPhone开发工具安装和介绍 Xcode基础介绍
  • 3. 十月 24, 20183课程内容2OC概述及命名规范 OC变量和常量 OC运算符和表达式 If语句 for语句 while语句 switch语句
  • 4. 十月 24, 201841、iOS开发入门 2007年诞生第一代iPhone
  • 5. 十月 24, 20185iOS开发入门 除了iPhone还有iPad、iPod touch和AppleTV
  • 6. 十月 24, 20186iOS开发入门 成为iOS开发人员 http://developer.apple.com/ios
  • 7. 十月 24, 20187iOS开发入门 iOS授权账户分类:普通账户、企业账户、校园账户 普通授权账户企业账户校园账户iOS的SDK试用版YESYESN/AiOS的SDK正式版YESYESYES真机安装YESYESYES有偿开发服务YESYESN/AAdHoc发布YESYESN/AApp Store发布YESN/AN/AIn-Hourse发布N/AYESN/A企业的批量采购YESN/AN/A内置收益广告YESN/AN/A年费$99$299免费申请要求合法的信用卡邓白氏编码高等教育机构
  • 8. 十月 24, 20188iOS开发入门 App Store平台
  • 9. 十月 24, 201892、iOS概述和架构介绍iOS的发展历史 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与iPhone5s及iPhone5c一起发布
  • 10. 十月 24, 201810iOS概述和架构介绍iPhone3GSiPhone4siPhone5iPhone5s3.5in. Screen 320x480 pixels3.5in. Screen 640x960 pixels4.0in. Screen 640x1136 pixels4.0in. Screen 640x1136 pixels
  • 11. 十月 24, 201811iOS概述和架构介绍iOS操作系统是iPhone、iPod touch及iPad设备的核心。 iOS平台开发工具和开发技术源于Mac OS X,都是以UNIX为基础。 iOS应用程序开发依赖于iPhone软件开发包(SDK),其中SDK继承与Xcode中 XcodeiOS SDKMac OS XXcode 3.2.6iOS SDK 4.3GM Seed for Snow Leopard 10.6.6Xcode 4.0.2iOS SDK 4.3.2Snow Leopard 10.6.6Xcode 4.1iOS SDK 5.0Snow Leopard 10.6.7Xcode 4.2iOS SDK 5.0Snow Leopard 10.6.7Xcode 4.3.2iOS SDK 5.1Lion 10.7.xXcode 4.6iOS SDK 6.1Lion 10.7.4Xcode 5.0iOS SDK 7.0Mountain Lion 10.8.5
  • 12. 十月 24, 201812iOS概述和架构介绍从整体看,iOS扮演底层硬件和应用程序的中介。 创建的应用程序不能直 接访问硬件,而需要和系 统接口进行交互。 iOS实现可以看作多个 层的集合,底层为所有程 序提供基础服务,高层则 包含一些复杂的服务和技 术。
  • 13. 十月 24, 201813iOS概述和架构介绍COCOA TOUCH层 提供了基本的系统行为支持,当需要实现更为复杂的行为和界面时,才考虑向下层探寻技术支持。 UIKit框架:提供程序运行必须得关键对象,使APP能够捕获用户输入和在屏幕上显示内容。 MapKit框架:iOS3.0引入该框架,可被嵌入到应用程序的地图界面,该框架包含一个可以滚动的地图视图。 Address Book UI框架:iOS3.0引入该框架,用于撰写电子邮件,并将其放入到用户的发件箱排队等候发送。 Message UI框架:显示创建或者编辑联系人的标准系统界面。 还有Game Kit,Event Kit UI,iAd框架等
  • 14. 十月 24, 201814iOS概述和架构介绍Media层 包含图形、音频、视频等技术。 AV Foundation框架:用于播放和编辑复杂的音频和视频。 Core Image框架:包含高级图像和视频处理功能。如:人脸识别和图像过滤功能。 Core Graphics框架:包含2D绘画和合成功能。 Media Player框架:提供典型的屏幕控件用于播放电影。 Quartz Core框架: 包含Core Animation接口。用于实现复杂的动画和视觉效果。 还有Image I/O,Core Text等框架。
  • 15. 十月 24, 201815iOS概述和架构介绍CORE SERVICE层 用于访问较多低级的操作系统服务,如文件存取,联网和常见的数据对象类型。 Foundation框架:为Core Foundation框架的许多功能提供Objective-C封装。 Core Foundation框架:一组C语言的接口,为iOS应用程序提供基本数据管理和服务功能。 Core Location框架:用于定位设备当前经纬度。 System Configuration:用于确定设备网络配置的当前状态。 还有CFNetwork、Core Data、Quick Look等框架。
  • 16. 十月 24, 2018163、iOS开发限制介绍平台间差异:iPhone OS设备和台式机或笔记本电脑的开发的不同,也和桌面应用程序不同,需要意识到终端开发的特殊性。 屏幕大小的限制:由于iPhone OS设备具有高分辨率的小型屏幕,在iphone5之前设备都是3.5in,iphone5及iphone5c,iphone5s都是4.0in,在设计应用时需要注意不要放置非必要的元素。 内存限制:iOS的内存非常有限,避免分配超出设备的可用内存,不然应用程序将终止。当发生内存过低时,iOS系统将发出警告,需要进行及时清理内存。同时需要注意避免内存泄露。 窗口显示限制:在iOS环境上,用户每次只能看到单个窗口。多个窗口只能顺序访问和查看。 电量限制:iPhone OS设备是通过电池供电,而高速运转的系统,大屏幕,上网或看电子书都会消耗电量。
  • 17. 十月 24, 2018174、Hello World实例演示3种创建方式 NSBundle类创建 直接使用Single View Application创建工程,拖动UILabel显示。 Interface Builder创建 创建一个Empty Application工程,新建一个xib文件并添加到界面。 直接使用“手写”代码创建
  • 18. 十月 24, 2018185、iPhone开发工具安装和介绍Xcode: iOS集成开发环境,也是编译器,负责管理应用程序工程。 Interface Builder: 快速原型开发工具,可视化的组装用户UI接口的工具,集成在Xcode中。 Instruments:功能强大的性能调试工具,以及内存分析工具。 iPhone Simulator:Mac OS X平台应用程序,它是模拟应用程序,但不能完全模拟所有功能。 iOS SDK:iOS软件开发工具包。
  • 19. 十月 24, 201819iPhone开发工具安装和介绍下载Xcode并安装 开发环境必须是Mac OS X系统,可以是在window上安装Mac OS X的虚拟机 直接在App Store上搜索Xcode,进行下载安装 若要下载旧版本登陆 https://developer.apple.com/devcenter/ios/index.action Xcode中包含 Xcode.app, iPhone SDK, iPhone Simulator, Instruments 下载完成后运行安装程序,没必要修改任何默认配置,不断点击continues按钮完成安装。 安装完成即可运行Xcode。
  • 20. 十月 24, 2018206、Xcode基础介绍进行Xcode后选择“Create a New Xcode project” 创建新项目
  • 21. 十月 24, 201821Xcode基础介绍Xcode操作界面
  • 22. 十月 24, 201822Xcode基础介绍Xcode项目的文件组织
  • 23. 十月 24, 201823Xcode基础介绍项目文件释义 Supporting Files plist文件:应用程序相关设置(属性)的文件 strings文件:设置应用程序本地化的文件 main.m:程序的入口 pch文件:程序的预处理文件 frameworks 存放框架位置 products 应用程序执行文件
  • 24. 十月 24, 201824Xcode基础介绍模拟器常用操作 选取设备 旋转设备 返回首页 锁定 模拟内存警告 呼叫状态栏目 拷贝屏幕以及屏幕快照 常用快捷键
  • 25. 十月 24, 2018251. OC概述及命名规则计算机语言的历史 第一代编程语言 纯机器语言 第二代编程语言 汇编 第三代编程语言 C、Pascal等面向过程的语言 C++、java面向对象的语言 oc同样是面向对象的语言
  • 26. 十月 24, 201826OC概述及命名规则OC概述 Mac OS X和iOS使用相同的开发环境和开发语言—Objective-C。 由于Mac OS X和iOS都是基于Unix内核,所以对大小写敏感。 oc是C语言的超集,C语言的扩展,与C语言完全兼容。添加了关键字“@”,区别于C语言。 oc的头文件格式是“.h”,实现文件格式是“.m”。如果需要使用C++的语法和内容,那么实现文件格式是“.mm”。 历史:1988年乔布斯的NeXT公司买下StepStone代码授权和Objective-C商标权。1996年苹果公司收购NeXT公司,将操作系统NeXTSTEP重名成Cocoa(很多Cocoa框架的类库都以NS开头),Objective-C语言成为苹果公司的主要使用语言。2007年更新为Objective-C 2.0 。
  • 27. 十月 24, 201827OC概述及命名规则命名规则 oc语言中,对各种变量、方法和类等要素命名时使用的字符序列称为标识符。 oc标识符由字母、数字、美元符“$”和下划线“_”组成。名字开头首位都会写上字母,因为数字被认为是非法的,下划线被认为有特殊含义(下划线的变量惯例为成员变量,双下划线的变量惯例为系统内部变量)。 oc标识符大小写敏感,长度无限制。 &user 错误。 “&”作为首位且不支持此符号。 sum(a_b) 错误。“()”不支持此符号。 email address 错误。 不支持空格。 5cakes 错误。数字不可以作为名字首位。 char 错误。不能与oc中保留字重名。
  • 28. 十月 24, 201828OC概述及命名规则保留字,即关键字(keyword),系统专门使用的字符串。 oc中的关键字全部都是小写。 intenumfloatgotodoubleregistershortsizeofstructtypedefunsignedvolatilebreakcharcontinuedolongexternforwhileautoreturnsignedstaticswitchunionvoidifcaseconstdefaultelse
  • 29. 十月 24, 201829OC概述及命名规则命名规范 匈牙利命名法: 变量名 = 变量特性+变量类型+描述 如m_iUserID变量,m代表member,i代表integaer,UserID变量含义。 变量特性g_: 全局变量c_: 常量s_: 静态变量m_: 类成员变量变量类型简写变量类型简写charch 或 cchar *szinti 或 ndoubledpointerplonglboolbunsignedufloatf
  • 30. 十月 24, 201830OC概述及命名规则命名规范 驼峰式命名法: 即每个单词的首字母大写,但变量名的第一位小写。通常在变量名前些上变量类型的简称。 NSString *strUnitTestResult; NSString *unitTestResult; NSArray *arrTestResult; 其中NSString和NSArray常用简写str和arr。 为了避免不同开发者创建相同名字的变量、方法或类的情况,最好在名字前加上一个前缀。如NS(NEXTSTEP的缩写)前缀,表示Foundation类库。
  • 31. 十月 24, 201831OC概述及命名规则代码格式规范 大括号要对齐 遇到“{”Tab缩进 方法和程序块之间加换行 运算符两侧加空格 “{”前面有空格 “{}”成对出现
  • 32. 十月 24, 2018322. OC变量和常量常量 oc中不同的数据类型表示的常量: const int kInitNum = 123; 整型常量 const float kPI = 3.1415926; 实型常量 const BOOL kIsFinished = TRUE; 逻辑常量 const char kExamResult = 'a'; 字符常量 const char *kWelcome = "Hello World!"; 字符串常量 const NSString *kBaiduURL = @"http://www.baidu.com"; oc中约定,常量使用大小写混排的驼峰命名规则,第一个字母是k。 objective-c中方法不能使用const修饰。
  • 33. 十月 24, 201833OC变量和常量变量 oc变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。 oc程序中每一个变量都属于特定的数据类型,在使用前必须对其声明。 如: int i = 12345; float f = 12.12f; 按被声明的位置可分为: 局部变量:方法或语句块内部定义的变量 实例变量: (成员变量)方法外部、类的内部定义的变量 按所属的数据类型可分为:基本数据类型变量和指针数据类型变量
  • 34. 十月 24, 201834OC变量和常量变量 局部变量:方法体内部声明的变量(包括形参)。方法体内部是指与方法对应的大括号内部。 - (void)test { NSString *str = @“hello World!”;//str就是一个局部变量。 } 成员变量:在方法体外,类体内声明的变量。 @interface AppDelegate : UIResponder { NSString *_name; //_name 就是一个成员变量 }
  • 35. 十月 24, 201835OC变量和常量id类型 id类型是oc中独有的数据类型,它可以存储任何类型的对象,从某种意义上说,它就是一般的对象类型。 id 指向一个任何类型对象的指针。但是不能存储基本类型int,float。 需要注意的是id是一个指针,所以在使用id的时候不需要加“*”。 如,id foo = nil; id *foo = nil;//则foo是一个指向另一个指针的指针。
  • 36. 十月 24, 2018363. OC运算符和表达式运算符 算术运算符:+,-,*,/,%,++,-- 关系运算符:>,<,>=,<=,==,!= 逻辑运算符:!,&&,|| 位运算符:&,|,^,~,>>,<< 赋值运算符:= 扩展赋值运算符:+=,-=,*=,/= 条件运算符: ?: 优先级: !>算术运算符>关系运算符>&&>||>赋值运算符
  • 37. 十月 24, 201837OC运算符和表达式表达式 表达式是符合一定语法规则的运算符和操作数的序列。 1.0 + a i<10&&i%10!=0 表达式的类型和值 对表达式中操作数进行运算得到的结果称为表达式的值。 表达式值的数据类型即为表达式的类型。 表达式的运算顺序 应按照运算符的优先级从高到低得顺序进行。 优先级相同的运算符按照事先约定的结合方向进行。
  • 38. 十月 24, 2018384. if语句条件语句- 根据不同条件,执行不同语句 if if…else if…else if if…else if …else if …else if (表达式) //语句 表达式返回TRUE(即非0),则执行。 如: if(有钱) 就去旅游 只有一句需要执行的语句时,才可以省略{},但是不推荐省略。
  • 39. 十月 24, 2018395. for语句循环语句- 重复执行某些动作 for 语句为如下形式: for (表达式1;循环条件;表达式2) { //语句;… … } 执行过程:先求表达式1的值,再求循环条件的值,如果条件不满足(即表达式为false),循环立即终止,执行循环后的语句。如果条件满足,继续执行循环条件的值,如果条件满足,执行表达式2,如此循环。
  • 40. 十月 24, 201840for语句在oc中,苹果对于集合类型的对象新增了“in”语法。 NSArray *arrData = @[@"123",@"456",@"789"]; for (NSString *str in arrData) { NSLog(@"str is %@.", str); } 省略了for语句限定条件,而且不需要担心数组越界、数组无值或者元素取完的情况。
  • 41. 十月 24, 2018416. while语句循环语句- 重复执行某些动作 while语句格式 while(逻辑表达式) { 语句;… } 执行过程:先判断逻辑表达式的值。若为true,则执行其后面的语句,然后再次判断条件并反复执行。
  • 42. 十月 24, 201842while语句do while语句格式 do { 语句; }while(逻辑表达式); 执行过程: 先执行语句,再判断逻辑表达式。
  • 43. 十月 24, 201843while语句break语句用于终止某个语句块的执行。用于循环语句体中,强行退出循环。 continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下面未执行的循环,开始下一次循环过程。 int num = 8; do { if ( num >= 4 ){ num--; continue; } NSLog(@"当前值为:[%d].", num); if ( num == 0 ){ break; } num--; } while (1);
  • 44. 十月 24, 2018447. switch语句条件语句- 根据不同条件,执行不同语句 switch语句格式 switch(值) { case XX:… case XX:… … default:… } 需要小心case穿透,推荐使用break语句与之搭配使用 多个case可以合并到一起 default可以省略,但不推荐省略。 switch的值必须是int类型
  • 45. 十月 24, 201845课后题上机实现Hello World工程。
  • 46. 十月 24, 201846谢谢大家!