ios题

1、        简述OC中内存管理机制。与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwritereadonlyassignretaincopynonatomic atomicstrongweak属性的作用?

:retain 对应release ,retain+1,release -1 alloc 对应dealloc  alloc是开辟内存空间dealloc销毁空间

readwrite,生成set,get

readonly, 生成get

assignset 内部直接赋值

retain,先做release ,retain

copy,复制遵守特许协议的对象

nonatomic:非原子性(不会在多线程保证安全)

atomic、原子性(保证)

strong:ARC下使用,arc 强引用和非ARCretain 相似

weak: ARC下使用,和非ARCassign 相似,当系统释放后会指向nil

2、        类变量的@protected,@private,@public,@package,声明各有什么含义?

@protected:本类以及子内都可以访问,系统默认

 @private:只有本类可以访问

@public,:公共的,都可以访问

@package(框架内访问)

(能不能用箭头访问)

3、        线程是什么?进程是什么?二者有什么区别和联系?

进程间是独立,这表现在内容空间,上下文,线程的运行环境

一般来说进程是无法突破程序边界,取其他进程的存储空间,而线程处于进程空间内,所以所产生的线程共享同一内存空间

同一进程代码不同同时进行,除非引入线程.线程属于进程,金城推出时所产生线程强制退出并清除,线程占用资源少于进程,在线程中,进程也是一个线程,尅也理解程序第一个线程

 一个程序只有一个进程,当可以有多个线程

 

4、        谈谈你对多线程开发的理解?ios中有几种实现多线程的方法?

多线程就是可以让一个程序同时执行多个线程,来提高程序的执行效率

实现方法:

1.Thread

3.Cocoa operations;

2.GCD

4.poxs

5、        线程同步和异步的区别?IOS中如何实现多线程的同步?

(异步:并发,同步:串行,,可以使用主队列,queue线程最大数量设为1)区别:同步就是当程序的线程还没有结束时,不可以执行别的操作,可能会卡死程序界面,异步,程序在执行时,不需要等执行结束,可以执行别的操作,相当于开了一个线程.


7、        获取一台设备唯一标识的方法有哪些?

1.uuid

2.udid

3.open udid

4.广告标识

5.vindor

6.mac adderss

token boudle id

 

8、        ios类是否可以多继承?如果没有,那可以用其他方法实现吗?简述实现过程。

Ios 不可以多继承.可以用代理

 

9、        堆和栈的区别?

:在系统中,一般系统管理的对象都在栈中,我们不需要去管理,但不需要的时候,系统会自动释放堆中的对象,一般出了方法体这个对象就释放了.

:我们手动开辟的空间一般在堆中开辟,堆中开辟空间在ARC情况下,系统会延迟释放(autorelease),ARC情况下需要我们手动管理.

 

10、     ios本地数据存储都有哪几种方式?

1,UserDefault

2.codeDate

4.nskeyArchive

3.write写入

5.plist

6.归档反归档

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章