iOS知识总结

准备工作之余,还是妄想着写些什么,一来可以加强自己的记忆,二来可以分享给大家看看,希望大家提出建议,补充补充,一起进步。下面是我看了一些资料对iOS复习要点的一些总结,说是原创,其实也是从不同的地方阅读来,自己做个总结。因为实在是大量记在笔记本上的,也不记得出处,若有版权问题,请回复我,若真实,必定加上链接(依稀记得有些从  http://www.itmian4.com/  看来)。

  1. ARC和None-ARC在内存管理上的区别
  2. ARC在什么情况下会出现内存泄露
    strong未置nil/presentViewController的使用/观察者模式下。
  3. Tool-Free Bridge
    Core Foundation和Foundation的数据类型可以用bridge进行相互转化,如NSString CFString。
  4. extension和category的区别
    category扩展一个类而不重新创建类,但只能用于扩展方法而不能为该类增加成员变量;
    extension是匿名的category,extension的声明方法必须在main implementation中实现。
  5. category与继承的区别
    继承:增删改
  6. objective-C类不可以定义私有方法,可以用定义空类别的方法:
    <span style="font-size:14px;"><span style="font-size:12px;">@interface MyClass()
    -(void)privateMethod;
    @end</span></span>
  7. property属性nonatomic和atomic的区别
    noatomic表示禁止多线程,不对变量进行保护,提高性能;
    atomic表示原子操作,为了适应多线程。
  8. strong和weak
    strong表示占有,weak表示弱弱联系,没有strong指针指向时就回收。
  9. assign和retain
    p1 p2都指向对象a,若指针都使用assign,则p1不用时,释放资源a;
    若指针都是用retain,对a计数,现在为2,若p1释放,计数减一,p2释放,继续减一,计数为零释放资源a。
  10. 强循环引用造成内存泄露问题(NSTimer)
    weak在对象释放之后置为nil;
    使用block解决。
  11. iOS多线程有哪些,区别是什么
    NSThread最简单,轻量级;需要自己挂历线程的生命周期,线程同步,数据锁操作会有一定的开销;
    NSOperation/NSOperationQueue 方便设置线程依赖,可以创建并在第一时间取消,可以设置同一时间线程操作数目;
    GCD(Grand Central Dispatch)线程池。
  12. Runloop是线程中的循环
    Runloop作用和原理
  13. CoreData
    CoreData使用fault机制,进行惰性加载。
  14. OC语言的特点
    不支持多重继承,使用消息传递的方式进行函数调用,OC是动态类型(id)。
  15. 接口protocol和virtual区别
  16. iOS crash后的调试方法,crash的检测,log
  17. iOS回调的实现
    观察者模式/协议和委托
  18. #import和#include区别
    #import不会导致交叉编译
  19. id声明的特性
    没有*
    动态数据类型
    可以指向任何类的对象而不关心具体类型
    在运行时检查具体类型
    可以对其发送任何存在的消息
  20. Cocoa没有虚基类,没有多继承
  21. [pool release] [pool drain]区别
    drain在又GC的环境中会引起GC的回收,没有GC两者相同
  22. notification KVO
    个人觉得,两者都是同步机制,都通过阻塞来实现同步。
  23. 响应者链的理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值