A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhao543 中级黑马   /  2017-6-12 23:19  /  2606 人查看  /  7 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

****************oc加强***********************


1,内存管理范围:管理任何继承NSObject的对象,基本数据类型不需要内存管理。


2,内存管理的原则
    1)谁创建,谁release
    2)谁retain,谁release
    阐述:
        只要还有人在使用某个对象,那么这个对象就不会被回收;
        只要你想使用这个对象,那么就应该让这个对象的引用计数器+1;
        当你不想使用这个对象时,应该让对象的引用计数器-1;

3,set方法的内存管理
1)基本数据类型:直接赋值
2)OC对象类型:先判断是不是新传进来的对象, 对旧对象做一次release,对新对象做一次retain


4,野指针
没有初始化的指针变量 或 指向的内存空间已经被释放的指针变量

5,僵尸对象
本质是一个对象,这个对象已经被回收


6,什么是内存泄露
该回收的对象没有被回收,就产生了内存泄露


7,循环retain
两个类相互包含,就会出现无法释放的问题,解决方案:一边用retain 另一边用assign


8.import和@class的区别
    1)#import是1个预处理指令. 将文件的内容拷贝到写指令的地方.
    2)@class不是1个预处理指令. 不会将任何文件的内容拷贝进来.仅仅是告诉编译器这是1个类.


9,autorelease是什么?
简单来说,就是一个池子,当我们的这个池子释放的时候,它会将它里面的所有对象做一次release操作


10,ARC的判断准则: 只要没有强指针指向对象,对象就会被立即释放


11,强指针和弱指针
    在ARC环境下,对于OC对象
    用__strong修饰的指针叫强指针(默认)
    用__weak修饰的指针叫弱指针


12,ARC机制下的循环引用:一端使用strong 一端使用weak


13,@proprety参数
    1)原子性:atmoic(原子性)noatmoic(非原子性)
    2)读写属性:readwrite和readonly
    3)set方法的处理:assign(修饰基本数据类型)retain(用来修饰OC对象)
    以上是MRC的情况下  ARC的情况下多两个(strong(强指针)weak(弱指针))



14,分类的作用:在不改变原有类的基础上,为一个已经存在的类扩充方法


15,分类和继承:分类用来添加新的方法不可以改变原方法,继承可以添加改变原方法并可以增加属性


16,延展(Extension)概念
    延展可以认为是1个匿名的分类,它只有声明没有实现.和本类共享1个实现.


17,什么是非正式协议
第一种答法:给系统的类增加的分类叫非正式协议
第二种答法:凡是给NSObject或者其子类Foundation框架中的类增加的类别都是非正式协议.


18,block概念:block是一个类型,这个类型可以定义变量,这个变量是用来存储一段代码的


19,block能不能修改外面的局部变量
    默认情况下,block 内部不能修改外面的局部变量
    给局部变量加上_block,这个局部变量就可以在block内部改变


20,block与函数的异同
    1.相同点
    都可以封装成一段代码

    2.不同点
    1>block是一种数据类型,函数是一种不是,函数是一段具有特定功能的代码段
        所以有block类型的变量,没有函数类型的变量
    2>block可以直接做参数传递,函数不能


21,协议的概念
协议: 一些方法的声明,写在.h文件中,供其他的类去遵守.


22,代理设计模式的场合:
   * 当对象A发生了一些行为,想告知对象B (让对象B成为对象A的代理对象)
   * 对象B想监听对象A的一些行为 (让对象B成为对象A的代理对象)
   * 当对象A无法处理某些行为的时候,想让对象B帮忙处理 (让对象B成为对象A的代理对象)

        1)通知的场合
        * Baby发生了一些行为,想告知保姆
        2)监听器的场合
        * 保姆想监听Baby的一些行为
        3)有些事情,不想自己处理,想交给别人处理
        * Baby发生了一些行为, 但是自己不会处理, 可以交给保姆处理


23,Foundation框架
Foundation框架是系统提供的一些基本的类的集合,是OC中最基础的类


7 个回复

正序浏览

哥们,我想学习ios,能否留下qq
回复 使用道具 举报
大神啊.
回复 使用道具 举报
默默飘过
回复 使用道具 举报
zhao543 发表于 2017-6-12 23:39
小伙子很懂行啊

大神啊,希望多发一些关于面试会考的知识.
回复 使用道具 举报
zhao543 发表于 2017-6-12 23:39
小伙子很懂行啊

谢谢夸奖,,其实只是个菜鸟,看来你是学霸~
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
QQ1002730074 发表于 2017-6-12 23:33
赞一个,难理解的名词,都在了!

小伙子很懂行啊
回复 使用道具 举报
赞一个,难理解的名词,都在了!
来自宇宙超级黑马专属安卓客户端来自宇宙超级黑马专属安卓客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马