下面的答案有错误的和不够完整的请见谅,本帖仅供参考。
如果想要更详细的,把问题放到百度
44.@class与#import有什么区别? // @class 只会告诉编译器,这里要用到的是一个类,但是这个类里的属性与方法不知道,
//#import是会把整个头文件拷贝到当前文件,则这个类以及这个类的属性与方法都知道.
//@class不需要拷贝文件内容,执行效率更高.我们只需要在需要有到这个对象里的属性或方法时,再去导入头文件即可.(推荐)
//#import只要导入,就会拷贝,不管这个文件是否要用到对象属性或方法.效率更低,同时,只要头文件改动,全部需要重新拷贝,编译.
45.分类Category是什么?有什么作用? /* 好处: 1.可以把一个类分模块,便于协同开发,并优化类的结构. 2.不改变类名,给类添加功能.
注意的问题: 1.分类不能写(添加)属性.只能(添加)写方法. 2.分类中的方法不能与主类或其它分类重复.即不能重写.如果重写了,那么会覆盖原来的方法. 3.分类中可以直接用主类的属性,但是属性的权限要>=@protected 4.不同分类中重写了同一个方法.那么哪个分类最后编译,则哪个分类的方法执行. 5.主类永远在分类之前编译 编译顺序: 父类-->主类-->分类(多个分类是可以调整顺序的) */
46.分类与子类的相同点和区别是什么?
47.协议是什么?有什么作用? //协议就是一系列方法的列表.也是用来遵守的.如果一个类遵守了一份协议,就表示这个类拥有了这个协议里的所有方法.
48.协议中能定义属性吗?协议中有方法的实现吗? //不能定义属性, 只有方法的声明 没有实现
49.协议中的方法一定要实现?通过什么来控制方法是否一定要实现? //不一定要全部实现 取决于关键字 @optional: 不一定要实现 @required: 一定要实现
50.协议可以多遵守吗?可以协议遵守协议吗? //可以多遵守协议 可以协议遵守协议
51.协议限定对象类型指的是什么?代码怎么体现? //id 指针 id<ProtocolTest> ns
52.什么叫OC的代理模式?实现步骤是什么? /* 1.找代理对象去帮我们做事情. 2.当一个对象A希望在做某些事情的时候,告诉另一个对象B.--可以让B成为A代理. 3.当一个对象B希望另一人对象A在做完某些事情时,自已能知道.----可以让B成为A的代理.
定义: 1.分析需求,看实现需求需要哪些行为. 2.定义协议:把这些行为声名在协议中. 3.定义需求类,在类中定义一个id属性,让这个id属性去遵守这个协议.(限定这个id指向的对象类型) 4.定义一个实现需求的方法声名在类中. 5.在类的实现里去实现这个需求. 6.在这个方法的具体实现中调用id属性去动态调用对应的方法.去实现具体需求.
使用: 1.让一个类去遵守这个协议. 2.同时实现这个协议里的所有方法. 3.创建这个类的对象.以及需求类的对象,赋值给需求类的id指针. 4.让需求类的对象调用自已实现需求的方法.(真实处理需求的是代理对象). */
53.block是什么?与函数有什么区别? //作用:对代码的封装,可以在程序运行时动态封装调用.效率很高.
54.block能访问外部变量吗?能直接修改吗?怎么样才能? //能访问外部变量 变量只有加了__block才能在block内部改变.默认不能改变外部的值,只能只读.
55.block可以当做哪些成分?要注意什么问题?
56.Foundation框架主要分为哪几大类?
//结构体 集合 字符串 字典 NSDate NSValue NSNumber 拷贝 description
57.结构体主要分为哪几大类?各有什么作用? // NSRange 范围 NSPoint 坐标(X,Y) NSSize 宽高 W H NSRect 矩形 ( X,Y,W,H)
58.字符串主要分为哪两类?有什么区别? // NSArray 不可变字符串:长度不可变 ;NSMutadleArray //可变字符串,长度可变 NSMutadleArray 是NSArray 的子类
59.字符串主要有几种创建方式? // 普通创建 动态创建 通过C语言字符串创建,将C语言字符串,转换成了OC字符串 // 从文件中读取创建 从URL读取.URL:
60.字符串输出的方法主要有哪几种? // 把字符串输出到一个文件中 把字符串输出到一个 资源对象中(URL)
61.可变字符串常见操作有哪些? // 1增加:在后面增加 2减少:在删除一定范围的字符串 // 3替换:把某一个范围内的字符串替换成别的字符串
62.字符串常见用法有哪些? // 1 把字符串的所有的字符变成大写 ,2 把字符串的所有字符串的字符变成小写, // 3追加:重新生成一个字符 4 两个字符串的比较大小 ;是否相等 5 截取;
63.集合框架是要有哪三类? // NSArray NSSet NSDictiongary
64.Array集合是什么?分为哪两类? // NSArray NSMutableArray
65.Array集合常见操作有哪些? // 取值 遍历集合
66.Set集合是什么?分为哪两类? // 无序 的集合 NSSet NSMutableSet
67.Set集合常见操作有哪些? // 取值 遍历集合
68.Array与set集合是区别是什么? // NSArray 是一个有序的集合 可以遍历取出每一个值 // NSSet是一个无序的集合 遍历只能随机取出一个值
69.字典是什么?主要有哪两类? // 1 键值对 2 NSDictionary NSMutableDictionary
70.字典的常见操作有哪些? // 创建 遍历取值 NSMutableDictiongary 可以增加 删除 修改
71.字典的key值能相同吗?value值呢? // 不能 可以
72.NSNumber的主要作用是什么? // 1把基本数据类型包成OC对象 2把OC对象拆成基本数据类型
73.NSValue的主要作用是什么? // 1把结构体包装成OC对象 2把OC对象拆成 结构体
75.NSDate的主要作用是什么? // 1获取当前时间,或者获取任意一个时间节点,并封装成对象 // 2把一个字符串的时间转换成NSDate的对象 // 3 把NSDate对象转换成对应格式的字符串
76.description的作用是什么? // 1判断一个对象是否是一个类或者子类的对象 ,不包含父类 // 2判断一个对象是否是一个类的对象(实例) 不包含子类
|