你知道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技术