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.歸檔反歸檔

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