iPhone期末考试终结版

上传人:沈*** 文档编号:152974056 上传时间:2022-09-16 格式:DOC 页数:9 大小:126KB
收藏 版权申诉 举报 下载
iPhone期末考试终结版_第1页
第1页 / 共9页
iPhone期末考试终结版_第2页
第2页 / 共9页
iPhone期末考试终结版_第3页
第3页 / 共9页
资源描述:

《iPhone期末考试终结版》由会员分享,可在线阅读,更多相关《iPhone期末考试终结版(9页珍藏版)》请在装配图网上搜索。

1、 iPhone期末复习第一章:开篇综述1.1 iOS概述1. iOS操作系统是基于Unix操作系统而编写的。 (填空题选择题)2. iOS的系统架构分为四个层次:核心操作系统层,核心服务层,媒体层,可轻触层。3.苹果电脑全球研发者大会英语简称:WWDC1.2 APPSTOREiOS拥有高质量的应用软件商店:App StoreiOS应用程序分类:1.效率型应用2.实用型应用3.沉浸式应用。1.3 IOS SDK和IOS开发环境Xcode1. iOS开发环境 Xcode2. 与Xcode配套使用的窗体创建器 Interface Builder3.iOS是封闭的,无法再苹果以外的设备上使用IOS.第

2、二章 Objective-C语言基础2.1 Objective-C语言概述 Objective-C是一种面向对象的计算机语言,是C的超集。2.2数据类型、运算符和表达式1.基本数据类型表注意id类型。2.运算符和表达式重点看段路与和短路或int i=0;int a=10;int b=9;If(ab)|(i+=1)NSLog(”ab”);elseNSLog(”ab i=1如果把改为|运行结果:ab i=02.3Objective-C语言的面向对象特性(多以判断题,选择题为主)1.类Objective-C中的类包括两部分,接口部分和实现部分,接口部分中只有方法的定义没有方法的实现。接口部分文件后缀

3、名是“h”,对应的实现部分文件后缀名是“m”。2.方法和消息Objective-C中对方法的调用称作发出消息,操作符号不是“.”而是“ ”。如下所示:myObject insertObject: obj1 atIndex:0;向myOject对象发出一个消息insertObject:atIndex ,即在索引为0处插入一个对象obj1。3.属性Objective-C使用property 关键字在接口部分定义属性,在实现部分使用synthesize关键字再组装和合成这些属性。property(参数),这里参数分为三大类 :读写属性(readwrite/readonly);内存管理(assign/

4、retain/copy);原子性 atomicity(nonatomic);4.构造方法构造方法用于初始化类中的成员变量,返回值为本身类型指针。5.类变量和类方法在类中有实例成员变量和实例方法,还包括类变量和类方法。实例变量的声明是在Interface中,类变量声明是在模块中使用static关键字,实例方法的声明是用“-”,类方法的声明“+”。 initialize 方法是非常特殊的类方法,它是在类第一次访问时候被自动调用,因此它一般用来初始化类变量,类似于C#中的静态构造方法。2.4继承性子类能够继承父类的某些方法和成员变量,但是作用域限定符private的成员变量是不可以被继承的,子类可以

5、重写父类的方法以及命名与父类同名的成员变量。2.5多态性多态性是指在父类中定义的成员变量和方法被子类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个变量和方法在父类及其各个子类中具有不同的表现形式。id是泛类型,可以用来存放各种类型的对象,使用id也就是使用“动态类型”。2.6分类和协议分类本质上是通过Objective-C的动态绑定而实现,通过使用分类能够达到比继承更好的效果。协议只有接口部分,没有实现部分,所以没有m文件,关键字protocol,协议可以继承别的协议,协议中不能定义成员变量。协议的实现是在类声明的父类之后,加上,与类的单个继承不同,协议可以实现多个,表示要实

6、现这个协议,如果有多个协议要实现用“,”号分隔:。2.7内存管理对象的释放是在dealloc方法中。内存释放池:Autorelease pool属性中的内存管理参数:assign、retain、copy第三章 iOS应用程序开发3.1处理基本交互(可能出简答题)1. Cocoa Touch设计者采用MVC(模型-视图-控制器)范型作为指导原则。MVC模型将所有功能划分为3种:模型:保存应用程序数据的类。视图:窗口、控件和其他用户可以看到并能与之交互的元素。控制器:将模型和视图绑定在一起,确定如何处理用户输入的应用程序逻辑。2. 控制器中定义的特殊变量,用来引用nib中的变量,将此变量声明为输出

7、口(outlet)3.应用程序委托:负责为另一个对象处理特定事情的类。3.2单视图应用程序3.3多视图应用程序3.4表视图见程序填空题3.5导航控制器导航控制器(UINavigationController)是作为栈(stack)来实现的。(栈的几个概念入栈、基栈、栈顶、出栈)3.6 标签栏应用程序3.7Core Location定位功能见程序编写题第一题3.8 加速计iOS设备上的加速计是一个三轴加速计,能够测出加速度和重力。一、程序编写题:1. Core Location定位功能MainViewController.h 文件#import#import#import/定位功能的头文件int

8、erface MainViewController : UIViewController IBOutlet UITextField *latitude; / 纬度 IBOutlet UITextField *longitude; /经度 property(nonatomic,retain)UITextField *latitude;property(nonatomic,retain)UITextField *longitude;-(IBAction)openWebMap; /打开谷歌地图方法endMainViewController.m 文件#import MainViewController

9、.himplementation MainViewControllersynthesize latitude,longitude; /经纬度属性的合成-(IBAction)openWebMap /打开谷歌方法 NSString *urlString = NSString stringWithFormat: latitude.text floatValue, longitude.text floatValue; /把谷歌地图链接,纬度、经度参数放到字符串urlString中 NSURL *url = NSURL URLWithString:urlString; /把字符串urlString转换成

10、网址 UIApplication sharedApplication openURL:url; /打开网址-(void)dealloc longitude release; latitude release; super dealloc;end注:不管遇到什么情况,-(IBAction)openWebMap这个方法的那一部分代码一定要写上!2. 密码生成算法h文件 MainViewController.h#import FlipsideViewController.h#import stdlib.hinterface MainViewController:UIViewConrollerUITe

11、xtField *passwordLength;UISwitch *number;UISwitch *lowerCase;UITextField *password;property (retain, nonatomic) IBOutlet UITextField *passwordLength;property (retain, nonatomic) IBOutlet UISwitch *number;property (retain, nonatomic) IBOutlet UIView *lowerCase;property (retain, nonatomic) IBOutlet UI

12、TextField *password;- (IBAction)generatePassword;endm 文件 MainViewController.m#import MainViewController.himplementation MainViewControllersynthesize password;synthesize passwordLength;synthesize number;synthesize lowerCase;(以下是密码生成器核心算法)- (IBAction)generatePasswordBOOL bIncludeNumbers = number.on;BO

13、OL bIncludeLowerCase = lowerCase.on; NSString *lengthString=passwordLength text; NSInteger length=lengthString intValue; NSMutableString *pass=NSMutableString stringWithString:; NSUInteger i=0; NSUInteger index=0; NSString* lowercaseChars = abcdefghijklmnopqrstuvwxyz;NSString* numbersChars = 0123456

14、789; while (ilength) if(bIncludeNumbers) index = arc4random()%9+1;/随机生产函数 NSString *s = numbersChars substringFromIndex:indexsubstringToIndex:1; /把随机生成的字符放到字符串s中 pass appendString:s; /把字符串s添加到动态字符串pass中 i+; if(bIncludeLowerCase) NSString *s1=NSString allocinitWithFormat:%c,(arc4random()%26+a); pass

15、appendString:s1; i+; password.text=pass substringToIndex:length; - (void)dealloc passwordLength release;number release;lowerCase release;password release; super dealloc;end注:和第一道题一样,如果考试中有特殊情况,密码生成器的核心算法一定要写上!二、 简答题阐述类别(分类)的概念。类别是 Objective-C 语言的一项功能,可让您扩展类的接口,而无需对类进行子类化。类别中的方法成为类类型的一部分(在程序的作用范围内),而

16、这些方法由类的所有子类继承。类别声明:interface NSDate (NSDateCreation) 简答翻译题:Utility Application This template provides a starting point for a utility application that has a main view and an alternate (预备的)view. For iPhone, it sets up an Info button to flip the main view to the alternate view. 实用应用程序这个模版为拥有一个主视图和备选视图

17、的实用型应用程序提供了一个起点。针对iPhone,这个模版设置了一个Info按钮,用于主视图和备选视图之间进行切换(翻转)。Tabbed ApplicationThis template provides a starting point for an application that uses a tab bar. It provides a user interface configured with a tab bar controller, and view controllers for the tab bar items.标签栏应用程序这个模版为拥有一个标签栏的应用程序提供了一个起

18、点。它提供了一个配有标签栏控制器的用户界面和几个用于标签栏条目的视图。三、 程序填空题注:本题有两道,一道是类的定义,另一道是表视图应用,由于两道题在类的定义部分重合比较多,所以总结时合为一题。实现一个简单的表:编写控制器:ViewController.h文件#import interface ViewController : UIViewControllerNSArray *weekDate;/划线部分分别表示:类的接口部分,表视图类遵从的两个协议property(nonatomic,retain) NSArray *weekDate;/属性声明、内存管理endViewController.

19、m文件#import ViewController.himplementation ViewController/类的实现synthesize weekDate;/属性的合成与组装- (void)viewDidLoad NSArray *array=NSArray allocinitWithObjects:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday, nil; self.weekDate=array; array release; /对象的释放 super viewDidLoad; - (void)viewDidUnload

20、 self.weekDate=nil; super viewDidUnload; -(void)dealloc /内存释放方法 weekDate release; /对象内存释放 super dealloc; /父类对象释放#pragma mark - #pragma mark Table View Data Source Methods- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section /分区中的行数 return self.weekDate count; /调用统计

21、行数的方法count - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath/表视图单元格,按照路径取出相应行的表单元格内容 static NSString *SimpleTableIdentifier=SimpleTableIdentifier; /静态字符串变量UITableViewCell *cell = tableView dequeueReusableCellWithIdentifier:SimpleTableIdentifier;/表

22、视图单元格,带有标记符的可重用出列单元格,上面定义的静态变量 if (cell = nil) cell = UITableViewCell alloc initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:SimpleTableIdentifierautorelease;/重用标识符,上面定义的静态变量,用后自动释放 NSUInteger row=indexPath row; cell.textLabel.text=weekDate objectAtIndex:row;/取出行中的对象内容 return cell;#pragma ma

23、rk - #pragma mark Table Delegate Methords-(NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath/按照路径将要选择的行 NSUInteger row=indexPath row; if(row=0) return nil; return indexPath;-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath

24、 *)indexPath/选中当前行 NSUInteger row=indexPath row; NSString *rowValue=weekDate objectAtIndex:row; NSString *message=NSString allocinitWithFormat:You selected %,rowValue; UIAlertView *alert=UIAlertView allocinitWithTitle:Row selected! message:message delegate:nil cancelButtonTitle:Yes I Did! otherButtonTitles:nil; alert show; message release; alert release; tableView deselectRowAtIndexPath:indexPath animated:YES;end四、 程序结果输出题重点看一下18页2-2,23页的段路与和短路或,49-50页,62-68页。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!