IOS学习2
1. #import,#include 和@class的区别
都引用一个类,根本定义区别:#include ,#import会把所有的copy一份到该文件
#import比#include的优势,import不会引起交叉变异(同一个文件不会多次引用)
在 Objective-C 中,#import 被当成 #include 指令的改良版本来使用。除此之外,#import 确定一个文件只能被导入一次,这使你在递归包含中不会出现问题。
一般来说,在导入 Objective-C 头文件的时候使用 #import,包含 C 头文件时使用
#include。
@class 仅仅事申明该类
2 typedef作用
简写代码。 一般结构体,block代码块时常用。编译时替换。
与#define区别,#define编译前执行。
注意:
typedef pstr char *
const pStr p2的含义是:限定数
据类型为char *的变量p2为只读,因此p2++错误。-------只读。@!
3 动态绑定
用于多态。 id类型。在编译时能够
1. 简答题(每道2分) 总分20
1.1简述#import和@class的作用与区别。
1.2简述typedef的作用。
1.3什么是动态绑定。
1.4列举objective-c的优缺点。
1.5简述alloc,dealoc retain,release的功能。
1.6使用点语法与直接赋值有什么区别,比如self.name=@“student”与_name=@“student”
1.7copy,assign,retain分别什么情况下使用。
1.8objective-c有私有方法吗?如果没有,如何实现,如果有如何声明。
1.9static关键字的作用。
1.10类方法与实例方法创建的对象的区别。
2.算法总分30分
2.1
//对指定数组降序排列,数组中保存的内容为字符串(5分)
+(NSArray*)sortArray:(NSArray*)array;
2.2
//用NSLog打印九九乘法表(5分)
+(void)printTable;
2.3
//对指定的字符串(单词间用空格分隔)进行分析,返回它里边所有单词出现的次数,返回值字字典 用单词作为key, 出现次数作为值((10分)
+(NSDictionary*)wordCount:(NSString*)fileContent;
2.4
//根据输入的内容打印(10分)
+(void)print:(NSInteger)count blankString:(NSString*)blankString flagString:(NSString*)flagString;
//比如 [class print:5 blankString:@“+”flagString:@“#”];
+ + # + +
+ # + # +
# + + + #
+ # + # +
+ + # + +
3.类设计
3.1公司类与员工类(25分)
员工类 Staff(5分)
成员变量
姓名(NSString) name
工龄(CGFloat) year (需要根据入职时间及公司成立时间计算得出)
部门(NSString) department
职位(NSString) post
领导(Staff) leader
入职时间(NSString) time
方法
三个参数的初始化方法(姓名,入职时间,部门),其它值可通过点语法赋值
-(id)initName:(NSString*)name time:(NSString*)time department:(NSString*)department;
打印方法
格式 “姓名:%@,工龄:%f,部门:%@,职位:%@,入职时间:%@“
-(void)print;
公司类Company(20分)
成员变量
公司名(NSString) name
成立时间(NSString) createTime
法人(Staff) leader
//部门名为字典的key,值为这个部门的所有员工数组
部门(NSMutableDictionary ) departmentArray
方法
一个参数的初始化方法(参数为数组类型,包含三个值,分别为公司名,成立时间)
//添加新员工,如果员工所在部门不存在则创建,如果这个员工为这个部门领导要通知所有其他员工,不能重复添加员工(名称和和入职时间都一样的员工)
-(void)addStaff:(Staff*)staff;(5分)
//根据姓名和入职时间查找员工
-(Staff*)findStaff:(NSString*)name time:(NSString*)time(5分)
//将指定的员工换到新部门
-(BOOL)changeDepartment:(Staff*)staff department:(NSString*)department;(5分)
//测试方法 创建公司,创建三个部门,每个部门至少两个员工,将所有方法测试一遍
+(void)Test;
3.2书签及其管理类(70分)
URLItem类(书签类) (5分)
成员变量
唯一索引值 id(NSNumber类型)
网址url(字符串)
标题 title(字符串)
星级 star(NSNumber类型)
描述 description(字符串)
访问次数 vistis(整型)
TagItem类(标签类) (5分)
成员变量
唯一索引值 id(NSNumber类型)
标签名name(字符串)
访问次数 vistis(整型)
Bookmark类(书签管理类)
方法
1.添加书签:参数有网址,标题,标签 (5分)
其中标签是以逗号分隔开的一些词或字组成的字符串,比如@"明星,我的最爱,八卦"
2.删除书签(可以用id,url两种方法删除书签)(5分)
3.查询书签(可以用id,url,标签名来查找书签)(5分)
4.修改书签(5分)
确定要修改的书签的参数可能是id或url
要修改的值可能是标题,创建时间,或标签(对原有标签改名或全部替换)
5.获得所有书签(可按星级,访问次数排序)(可能有没有标签的书签)(5分)
6.获得所有标签(可按标签名,访问次数排序)(5分)
7.用标签名删除标签(有这个标签的所有书签的这个标签都要删除)(10分)
8打印功能(5分)
打印某一个书签的所有标签
打印某一个标签的所有书签
打印所有书签
打印所有标签
9给已有书签添加标签(5分)
10.测试方法,完成所有你实现方法的测试(10)
IOS学习2的更多相关文章
- iOS学习-压缩图片(改变图片的宽高)
压缩图片,图片的大小与我们期望的宽高不一致时,我们可以将其处理为我们想要的宽高. 传入想要修改的图片,以及新的尺寸 -(UIImage*)imageWithImage:(UIImage*)image ...
- 【原】iOS学习之事件处理的原理
在iOS学习23之事件处理中,小编详细的介绍了事件处理,在这里小编叙述一下它的相关原理 1.UITouch对象 在触摸事件的处理方法中都会有一个存放着UITouch对象的集合,这个参数有什么用呢? ( ...
- iOS学习笔记——AutoLayout的约束
iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...
- 【原】iOS学习47之第三方-FMDB
将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 FMDB 第三方集成到工程中,具体请看博客iOS学习46之第三方CocoaPods的安装和使用(通用方法) 1. FMDB ...
- iOS学习路线图
一.iOS学习路线图 二.iOS学习路线图--视频篇 阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天 学习后目标: ...
- 黑苹果-IOS学习的开始
深知安装黑苹果的不易,在这里写一下关于我的Thinkpad E430c安装黑苹果教程(Mac版本:Yosemite 10.10.4),希望能够帮助有需要的朋友. 首先贴上我的电脑配置报表: ----- ...
- iOS 学习资源
这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...
- iOS学习资源个人整理
1208更新: http://www.tuyiyi.com 图翼网 https://github.com/Alamofire/Al ...
- 【原】iOS学习之第三方-AFNetworking1.3.0
将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 AFNetworking 第三方集成到工程中,具体请看上篇博客iOS学习46之第三方CocoaPods的安装和使用(通用方 ...
随机推荐
- [模板总结] Java的一些模板
快速排序(数组a从小到大,参数1是待排序的数组,参数2是起始下标,参数3是终止下标): static void sort(int [] a, int l,int r){ int m = l+r> ...
- 9. Palindrome Number
/* Determine whether an integer is a palindrome. Do this without extra space. click to show spoilers ...
- ListView中使用type需要注意的东西
在使用ListView时,如果使用了getItemViewType, 记得他的值一定要是从0开始计数的. 且要覆盖getViewTypeCount方法.并且让getViewTypeCount>g ...
- Hive基础之自定义封装hivefile命令
存在的问题:当把hql写到shell中,不方便阅读:但把hql写到文件中,又传递不了参数:怎么办呢? 自定义hivefile 执行方式形如: 第一个参数为要执行的hql文件,后续的参数为要替换的key ...
- HDU 4771 Stealing Harry Potter's Precious
Stealing Harry Potter's Precious Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 ...
- PreparedStatement和Statment
使用Statment安全性差,存在SQL注入隐患 public static void main(String[] args) { Connection conn=null; Statement st ...
- 区域生长算法(附MATLAB代码实现)
一.理论概念 区域生长是按照事先定义的生长准则将一个像素或者子区域逐步聚合成一个完整独立的连通区域过程.对于图像感兴趣目标区域R,z为区域R上事先发现的种子点,按照规定的生长准则逐步将与种子点z一定邻 ...
- 蓄水池采样算法(Reservoir Sampling)
蓄水池采样算法 问题描述分析 采样问题经常会被遇到,比如: 从 100000 份调查报告中抽取 1000 份进行统计. 从一本很厚的电话簿中抽取 1000 人进行姓氏统计. 从 Google 搜索 & ...
- Git 图解剖析
git中文件内容并没有真正存储在索引(.git/index)或者提交对象中,而是以blob的形式分别存储在数据库中(.git/objects),并用SHA-1值来校验. 索引文件用识别码列出相关的bl ...
- WWF3事件类型活动<第三篇>
WWF将工作流分为两大类: 面向Human:在工作流运行时通过用户对外部应用程序的操作来影响工作流的业务流转. 面向System:应用程序控制流程. 工作流与应用程序都是可以单独存在的,因此它们之间的 ...