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的更多相关文章

  1. iOS学习-压缩图片(改变图片的宽高)

    压缩图片,图片的大小与我们期望的宽高不一致时,我们可以将其处理为我们想要的宽高. 传入想要修改的图片,以及新的尺寸 -(UIImage*)imageWithImage:(UIImage*)image ...

  2. 【原】iOS学习之事件处理的原理

    在iOS学习23之事件处理中,小编详细的介绍了事件处理,在这里小编叙述一下它的相关原理 1.UITouch对象 在触摸事件的处理方法中都会有一个存放着UITouch对象的集合,这个参数有什么用呢? ( ...

  3. iOS学习笔记——AutoLayout的约束

    iOS学习笔记——AutoLayout约束 之前在开发iOS app时一直以为苹果的布局是绝对布局,在IB中拖拉控件运行或者直接使用代码去调整控件都会发上一些不尽人意的结果,后来发现iOS在引入了Au ...

  4. 【原】iOS学习47之第三方-FMDB

    将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 FMDB 第三方集成到工程中,具体请看博客iOS学习46之第三方CocoaPods的安装和使用(通用方法) 1. FMDB ...

  5. iOS学习路线图

    一.iOS学习路线图   二.iOS学习路线图--视频篇       阶 段 学完后目标 知识点 配套学习资源(笔记+源码+PPT) 密码 基础阶段 学习周期:24天       学习后目标:    ...

  6. 黑苹果-IOS学习的开始

    深知安装黑苹果的不易,在这里写一下关于我的Thinkpad E430c安装黑苹果教程(Mac版本:Yosemite 10.10.4),希望能够帮助有需要的朋友. 首先贴上我的电脑配置报表: ----- ...

  7. iOS 学习资源

    这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...

  8. iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem

    http://blog.csdn.net/totogo2010/article/details/7681879 1.UINavigationController导航控制器如何使用 UINavigati ...

  9. iOS学习资源个人整理

    1208更新: http://www.tuyiyi.com                                    图翼网 https://github.com/Alamofire/Al ...

  10. 【原】iOS学习之第三方-AFNetworking1.3.0

    将 CocoaPods 安装后,按照 CocoaPods 的使用说明就可以将 AFNetworking 第三方集成到工程中,具体请看上篇博客iOS学习46之第三方CocoaPods的安装和使用(通用方 ...

随机推荐

  1. ListView中内容的动画效果

    LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果,可以在XML文件中设置,亦可以在Java代码中设置. 一种直接在 ...

  2. requestDisallowInterceptTouchEvent

    ViewPager来实现左右滑动切换tab,如果tab的某一项中嵌入了水平可滑动的View就会让你有些不爽,比如想滑动tab项中的可水平滑动的控件,却导致tab切换. 因为Android事件机制是从父 ...

  3. 合并 hdfs 文件

     待研究,只做保存 将HDFS中不同目录下面的数据合在一起,并存放在指定的目录中,示例如: sqoop merge –new-data /test/p1/person –onto /test/p2 ...

  4. PL/SQL常用设置 可看引用位置更清晰直观 引自:http://blog.csdn.net/xiaoqforever/article/details/27695569

    引自:http://blog.csdn.net/xiaoqforever/article/details/27695569 1,登录后默认自动选中My Objects 默认情况下,PLSQL Deve ...

  5. OC基础(2)

    类与对象 类的设计 第一个OC类 对象方法的声明和实现 类方法的声明和实现 *:first-child { margin-top: 0 !important; } body > *:last-c ...

  6. CSS3里的常用选择器总结

    选择器       属性选择器:  img[src="images/2.jpg"]               开头匹配:  a[href ^="page/"] ...

  7. VIM安装 NERDTREE,SOLARIZED 插件

    实验系统版本及VIM版本 系统:CentOS6.3 VIM:7.2 插件介绍 (附上一张效果图) nerdtree(在窗口左侧用于浏览目录结构的插件) solarized(一个自己认为比较护眼的vim ...

  8. IOS9以上如何导入铃声并设置

    1.打开iTunes,点击左侧的“音乐” .2.在右侧的MP3等音乐列表中选中一个要制作铃声的名字 .3.在这个名字上点击鼠标右键选择“显示简介”,在弹出窗口中选择“选项”.4.在选项标签栏中设定开始 ...

  9. mysql数据导入

    1.windows解压 2.修改文件名,例如a.txt 3.rz 导入到 linux \data\pcode sudo su -cd /data/pcode/rm -rf *.txt 4.合并到一个文 ...

  10. Weblogic发布小问题——weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND

    前几天发布应用时出现了如下所示的一段错误提示信息: weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND pr ...