相关的知识点

2016-07-11  本文已影响15人  shiwuoo

相关知识点:

1,Retain,copy assign 三个关键字的区别

Retain  用于修饰oc 对象 类型

copy 由于修饰字符串nssting    类型或者 block 类型

assign 由于修饰基本数据类型

2,oc 有多继承吗?不是的话,有什么代替方法?

不是,但继承,可用分类扩充法

3,@class的作用是什么?

声明某个已存在的类

Xcode项目的目录结构是怎么分组的?

一级目录是按模块分的,二级目录是按模块内的功能分为model  view  controller  ;

工具类可单独分一个category 目录

4,堆和栈的区别

栈是由系统维护 ,栈一般存放对象的引用

堆是由程序员维护,堆一般存放new出来的对象

5,定义属性的时候,什么情况下 使用nonatomic,atomic ,copy,assign,和retain

nonatomic:非原子型的,线程异步执行

atomic:原子性的线程同步执行

copy:复制一个对象,并将其作为返回值 同时设置保留数量为1;

assign:用于基本数据类型

retain:对象被引用后计数器加1。

6,#import和#include,@class有什么区别?#import<>根#import“”又有什么区别?

1》#import和#include都能完整包含某个文件的内容,#import能防止同一个文件被包含多次

2》@class仅仅是声明一个类名,并不会包含完整的声明;@class还能解决循环包含的问题

3》#import《》用于包含系统自带的文件,#import“”用来包含自定义的文件

7属性readwrite  ,readonly,assign,retain,copy,nonatomic,各是什么作用?在那种情况下使用?

readwrite:同时生成get 方法和set方法的声明和实现

readonly:只生成get方法的声明和实现

assign:set方法的实现是直接赋值,用于基本数据类型

retain:set的方法的实现是release旧值,retain 新值,用于oc对象类型

5=copy:set方法的实现是release旧值,copy新值,用于nesting,block等类型

nonatomic:非原子型,set方法的实现不加锁

上一篇 下一篇

猜你喜欢

热点阅读