面试题3
来源:互联网 发布:淘宝网卖妇婴用品 编辑:程序博客网 时间:2024/06/10 22:31
23. OC里怎么实现多继承
OC 没有多继承。用协议实现多继承,把协议中的方法在实现的类中重写C++有多继承,多继承其实用好了很方便。C++多继承很容易出现二一性比如:
类 A { int a;}
类B:类A,类C:类A
类D : B, C那么int a到底是继承自谁的单继承
24.解释KVC和KVO
Key value coding, Key value observer.
Kvc 是路径访问的规范,kvo是观察某个变量的变化过程
KVO 可以观察某个对象的变量变化过程,KVC是满足被观察的编码规范。
KVC/KVO 类似于代理,通知中心。都是一种通讯方法。
25. 什么是单例模式
单例就是在多个对象之间共享数据,类似于全局变量,比如数据库打开一次,多个界面都可以使用
26. NSString *name = @”com”,[name release]会出现什么情况
这个代码不满足 objective-c的内存管理黄金法则。没有alloc 就
release,
27. 列举所知道的 iOS 的 API
28. 列举所知道的 iOS 的类
29.列举所知道的iOS UI控件
30.解释C++/STL List、map、set、vectorlist =~ array
map =~ dictionary
set =~ nsset
vector =~ array
31. C/C++和OC怎么混用
.m -> .mm
32. POST请求的链接参数怎么拼接
POST 参数有2中,一种文件POST一种非文件POST,对于非文件POST格 式 (form-data/x-www-urlencoded) 是name=xxx&id=22&sxx=33
对于文件 POST(multiple/form-data)
33. POST和GET有何区别
*2、get请求一般获取服务器的数据(下载数据/提交参数) 不能上传文件,而post两者都可以
*3、get请求在浏览器中字符串长度最大限制为1024,post 没有限制
*4、post 上传文件 文件大小不能超过4G
*5、get请求 NSURLConnetion 请求下来的数据,NSURLConnection 会做一定的数据缓存,post请求,请求下来的数据NSURLConnection不做数据缓存
34. 本地存储方式有哪几种
数据库,nsuserdefauts,file , plist,archieve归档比较小的就放在nsuserdefaults(以文件设计的存放在Libraray中)数据库里面适合存放一条一条的记录
file 一般存普通文件,图片,视频,音频等
plist 存放比nsuserdefaults大一些的
归档 nsarchieve 可以存对象
35.解释OC里的id类型
id 是泛型指针,可以指向任何oc类型,
id =~ NSObject *
id 是 objc_object的typedef,执行Class对象
36. retain、copy、readonly、readwrite的区别
retain对计数器+1 copy是创建一个新对象,readonly只产生getter函数,readwrite产生setter, getter函数
37. copy是深拷贝还是浅拷贝
copy 缺省是浅拷贝.但是copy也可以做成深拷贝
38. copy和mutableCopy区别
copy 是拷贝,mutableCopy是可变拷贝,比如把NSString 通过mutableCopy变 成NSMutableString,把NSArray通 过mutableCopy变成NSMutableArray.
NSString -àNSMutableString, NSArrayàNSMutableArray,
NSDictionaryàNSMutableDictionary, NSData->NSMutableData;
39. 怎么实现对象的本地存储
归档 NSArchieve
40. HTTP协议、Socket协议的区别
数据协议格式
编程
高
HTTP
ASI, NSUrlconnection
中
TCP长连接
UDP
BSD SocketAsyncSocket
低
IP
HTTP 启动一个NSUrlConnection在didFinish
长连接,长期的和服务器保持连接。目的是为了避免每次都要连接。因为和服务器连接的过程非常复杂。也耗时。所以连接一次。HTTP短连接只要处理完就断掉,下次重新连接 对服务器的负担小.
长连接对服务器压力很大。
41. 什么是 Push Notification
42. 遍历数组的三种方式有什么区别
for forin iterator
forin 也叫快速循环。为什么他叫快速循环,原因是速度快?为什
么速度快?可以通过优化提前把forin 里面的array数组数组全部
导入到 cpu cache中。因为cache访问速度比内存快至少100 倍
43. NSArray, NSDictionary这些是如何做的?
NSArray 使用链表做的NSDictionary使用 hash表做出来的
44. C++怎么调用C的方法
extern “C” int foo(){ };
45. Blocks语法有什么优点
Blocks 类似于c中回调函数,和代理类似的,类似于java中的listener匿名函数
46. Frame和bounds有什么区别
Frame 是子视图相对于父视图的坐标系统,x y width height,bounds是uiview自己的坐标系统bounds x y=0
47. 什么叫异步下载,怎么实现图片的异步下载48.什么是缓存
49. ScrollView的复用机制
滚动过程中把 scrollview里面的 超出屏幕的view 放在重用队列中,在滚动过程中如果有新的view进来,首先从重用队列中取得view,如果没有就新创建一个。
50. 什么是委托代理模式
委托代理是2个对象之间的一种通讯方式。一方使用协议,代理
另外一方实现协议,类似于回调,blocks等语法。目的是为了软件设计的低耦合
51. 什么是通知中心
通知中心是多对多的平等的通讯模式。主要用在多个对象之间松耦合的通讯模式。对象和对象之间通过通知的名字就可以进行关联通讯。
52.解释关键字static、const、inline、static inline、volatile
static 修饰变量表示静态变量,根据作用域 不同
extern 和static是相反的。
Static 修饰函数是表示函数在本文件有效
Static inline 联合在一起表示内联函数。类似于宏
Const 修饰变量和变量的内容只读
Volatile 表示每次都从内存中真正的读取。主要是用于嵌入式中,读取硬件。
53.如何实现2个线程 一个线程+1一个线程-1
int sum;
NSLock *sumLock;- (void) demo {
sumLock = [[NSLock alloc] init];
[NSThread detachNewThreadSelector:@selector(thread1:) toTarget:self withObject:nil];[NSThread detachNewThreadSelector:@selector(thread2:) toTarget:self withObject:nil];
}
- (void) thread1:(id)arg {
while (1) {[sumLock lock];
sum++;
[sumLock unlock];
[NSThread sleepForTimeInterval:1];}
}
- (void) thread2:(id)arg {
while (1) {[sumLock lock];
sum--;
[sumLock unlock];
[NSThread sleepForTimeInterval:0.5];
}}
54. OC中有私有方法吗?怎么实现
在.m文件中实现Category,只是在.m中方法
55. OC中有私有成员变量吗?
怎么实现在.m文件中实现匿名类别Category
56. 成员变量的作用域有哪几种
@public, @protected, @private
57. 数据库能不能存图片,怎么存?
可以存图片, nsdata存,但是我们一般不这样存,我们存路径把图片存在沙盒中。
- 英文面试题(3)
- Java面试题(3)
- C++面试题3
- .net面试题3
- 面试题3
- java面试题3
- 面试题(3)
- .net面试题3
- java面试题3
- .NET面试题 - 3
- java面试题3
- 面试题3
- DBA面试题3
- 面试题3
- 微软面试题3
- 面试题3
- java面试题3
- hibernate面试题3
- POJ_3669 Meteor Shower(BFS)
- 给dt新建行
- 图片整理
- 第4讲:For与Function进阶实战、Lazy的使用
- 接口压测之——put方法1
- 面试题3
- 静态内部类
- StringBuffer类的使用方法----转自 凤舞天煌
- MySQL修改表的字段
- Hadoop之YARN命令
- C++中类型数据所占字节数
- iOS高斯模糊实现
- 输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- 百练 2809:计算2的N次方