[网易面试题]自己的总结

你知道KVO吗?一般用来做什么功能?怎么实现的?

KVO与KVC:
http://blog.csdn.net/shawjan/article/details/48602327
KVO的实现
http://blog.csdn.net/shawjan/article/details/48931031

iOS本地化有哪些方式?

  • NSUserDefault
  • SQLite
  • CoreData
  • plist
  • NSKeyedArchive

iOS中的各种机制之缓存机制
http://blog.csdn.net/shawjan/article/details/45466759

protocol的理解

  • 委托代理是protocol的一种形式,即a是一个协议,b继承a并实现了a的协议方法,c中生成一个a协议的delegate对象,通过该对象,c可以执行a中得协议方法。
  • 非正式protocol,其实就是分类(category),通过分类,可以往已有的cocoa类或者自己定义的类中添加变量和函数,但是最好不要添加变量,原因是需要用到@dynamic,且要在以下方法中实现相关的存取方法。
    消息转发机制
    http://blog.csdn.net/shawjan/article/details/45478901
+(BOOL)resolveInstanceMethod:(SEL)selector

代理

上面protocol已经谈过了,protocol是代理的一个子集,这样做的目的是为了让两个类解耦合,信息的传递由中间代理去完成即可。两方一个负责通知,一个负责执行。

strong和weak有何区别

ARC中的术语。
- strong代表强引用,相当于非ARC中的retain,即在赋值过程中,retaincount加1,表示strong对象不仅持有赋值对象而且拥有赋值对象。
- weak代表弱引用,即在赋值过程中,retaincount不变,表示weak对象仅仅持有赋值对象而不拥有赋值对象。weak最主要是为了避免代码中循环引用。

Objective-c内存管理
http://blog.csdn.net/shawjan/article/details/44814195

NSString类型的propery为什么常常用copy

  • copy自带retain功能,因此表示NSString对象持有并拥有赋值对象,保证类的运行工程中能正常访问NSString对象。
  • 在NSMutableString赋值给NSString的时候,如果不copy,NSString指向了一个可变对象,这样子会给其他进程有修改的机会,不能保证值的一致性。

http://blog.sina.com.cn/s/blog_489ab04e01013ban.html

MVC如何通信的

  • M指Model,即模型或数据层
  • V指View,即视图或表示层
  • C指Controller,即控制层

通常是C于M、V交互,C从M取数据,并在V中展示。这样做的好处是使M和V解耦合,M、V的改变相互不影响,只需要修改C中得取数据或者展示方法即可。

但是页面更多时候采用的时MVVM模式,即Model-View-viewModel,原因是MVVM得灵活性要远大于MVC,且实现简单。

block函数?__block修饰符的作用

block函数是iOS4引进的C++特性。其特点是能够使代码紧凑,而不像委托实现方式一样松散。
__block的作用是修饰的对象能够捕获block中得值,即block改变了对象值,跳出block之后是改变后的值。但是一般情况block中得对象值的改变和外面无关。
特别注意使用block的时候要判断是否用weak来避免循环引用

你一般是如何调试野指针错误的

所谓野指针是指指针对象所指向的地址被释放后,没有赋值为nil,也成为悬挂指针。
调试的方法一般是首先看程序堆栈判断是哪个类抛出的异常;其次通过调用关系一步一步回溯。

Runloop

runloop是指一次事件处理循环,用来不停的调度工作以及处理输入事件。使用runloop的目的是让你的线程有工作时就忙于工作,无工作时就处于休眠状态。

runloop
http://www.dreamingwish.com/frontui/article/default/ios-multithread-program-runloop-the.html

AFN的底层实现细节

http://blog.csdn.net/shawjan/article/details/48936061

JSON转换模型库的底层实现细节

json java实现
http://blog.sina.com.cn/s/blog_6813fb240100zqoi.html

github jsonkit
https://github.com/johnezang/JSONKit

jsonkit实现原理
http://blog.csdn.net/xiaoping0935/article/details/18188309

iOS的多线程技术有哪些?NSOperation比GCD好在哪里?

GCD
http://blog.csdn.net/shawjan/article/details/45010407

如何做一个永久闪烁的星星

如何做界面

如何使整个app中得所有UIImage都显示同样的图片?

有一台打印机,突然断电了,电力恢复之后它是如何重新继续之前的工作?

spooling技术

你遇到技术问题如何去解决的?

现在你接到需求,你要实现类似于微信联系人列表的头像这个部分,你能想到的那些你需要做得操作?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值