相关的知识点

相关知识点:

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方法的实现不加锁

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容