iOS筆試題(一)

1.readwrite,readonly,assign,retain,copy,nonatomic屬性的作用?

讀寫(默認);只讀;

對基礎(chǔ)數(shù)據(jù)類型 (NSInteger,CGFloat)和C數(shù)據(jù)類型(int, float, double, char)等直接復(fù)制;

釋放舊的對象再將舊的對象的值賦給新對象;

釋放舊對象再講傳入對象的一份拷貝賦給新對象;

atomic和nonatomic用來決定編譯器生成的getter和setter是否為原子操作;

@dynamic是告訴編譯器由我們自己來實現(xiàn)訪問方法,@synthesize是setter和getter方法編譯器就會幫你實現(xiàn)了。

2.OC的內(nèi)存管理機制?

引用計數(shù)

MRC(Manual Reference Count),ARC(Auto Reference Count)

3.UIView與CALayer有什么區(qū)別?

1)UIView屬于UIKit框架,CALayer屬于QuartzCore框架;

2)CALayer 比UIView更加輕量級別, 但是可以實現(xiàn)同樣的效果;

3)UIView可以處理用戶的觸摸事件,而CALayer不可以;

4)UIView中有個屬性是layer;

5)UIView是視圖界面的元素,而CALayer是繪制內(nèi)容;

4.簡述視圖控制器的生命周期?

alloc:創(chuàng)建對象,分配空間

init (initWithNibName) :初始化對象,初始化數(shù)據(jù)

loadView:從nib載入視圖 ,通常這一步不需要去干涉。除非你沒有使用xib文件創(chuàng)建視圖

viewDidLoad

viewWillAppear

viewDidAppear

viewWillDisappear

viewDidDisappear

5.ios的系統(tǒng)架構(gòu)層次?


核心系統(tǒng)層(Core OS Layer):提供為上層結(jié)構(gòu)提供最基礎(chǔ)的服務(wù)如操作系統(tǒng)內(nèi)核服務(wù)、本地認證、安全、加速等。

操作系統(tǒng)內(nèi)核服務(wù)(BSD sockets、I/O訪問、內(nèi)存申請、文件系統(tǒng)、數(shù)學(xué)計算等)

本地認證(指紋識別驗證等)

安全(提供管理證書、公鑰、密鑰等的接口)

加速? (執(zhí)行數(shù)學(xué)、大數(shù)字以及DSP運算,這些接口iOS設(shè)備硬件相匹配)

核心服務(wù)層(Core Services Layer):為程序提供基礎(chǔ)的系統(tǒng)服務(wù)例如網(wǎng)絡(luò)訪問、瀏覽器引擎、定位、文件訪問、數(shù)據(jù)庫訪問等,主要包含以下框架:

CFNetwork(網(wǎng)絡(luò)訪問)

Core Data(數(shù)據(jù)存儲)

Core Location(定位功能)

Core Motion(重力加速度,陀螺儀)

Foundation(基礎(chǔ)功能如NSString)

Webkit(瀏覽器引擎)

JavaScript(JavaScript引擎)

媒體層(Media Layer):主要提供圖像引擎、音頻引擎、視頻引擎框架。

圖像引擎(Core Graphics、Core Image、Core Animation、OpenGL ES)

音頻引擎 (Core Audio、 AV Foundation、OpenAL)

視頻引擎(AV Foundation、Core Media)

可觸摸層(Cocoa Touch Layer):主要提供用戶交互相關(guān)的服務(wù)如界面控件、事件管理、通知中心、地圖,包含以下框架:

UIKit(界面相關(guān))

EventKit(日歷事件提醒等)

Notification Center(通知中心)

MapKit(地圖顯示)

Address Book(聯(lián)系人)

iAd(廣告)

Message UI(郵件與SMS顯示)

PushKit(iOS8新push機制)

6.常見的多線程方法?

NSThread,GCD,NSOperation

7.#import和#include的區(qū)別 ?@class的作用?

#import完整的包含某個文件的內(nèi)容,不會引發(fā)交叉編譯,

#include是C/C++中導(dǎo)入頭文件的關(guān)鍵字,完整的包含某個文件的內(nèi)容,

@class僅僅是聲明一個類名,可解決循環(huán)包含的問題。

8.id聲明的對象有什么特征?

id類型的對象可以是任意類型的OC對象,與C中的void*萬能指針相似。

具有運行時的特點,在程序運行時才確定對象的類型。

10.一個objc對象的isa的指針指向什么?有什么作用?


11.runtime如何通過select找到相應(yīng)的IMP地址?


12.為什么UIScrollerView的滾動會導(dǎo)致NSTimer失效?


13.對于語句NSString *obj =[[NSData alloc] init]; objc在編譯時和運行時分別是什么類型的對象?

編譯時:NSString;運行時:NSData。

14.寫一個Setter方法分別對應(yīng)retain和copy。


15.OC的類可以多重繼承么?可以實現(xiàn)多個接口么?

Category是什么?重寫一個類的方式用繼承好還是用分類好?為什么?

不可多繼承;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文轉(zhuǎn)載自:http://www.cocoachina.com/ios/20150104/10814.html ...
    idiot_lin閱讀 1,686評論 0 11
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,500評論 4 61
  • 之前看了很多面試題,感覺要不是不夠就是過于冗余,于是我將網(wǎng)上的一些面試題進行了刪減和重排,現(xiàn)在分享給大家。(題...
    Job_Yang閱讀 12,205評論 12 143
  • 轉(zhuǎn):http://www.cocoachina.com/programmer/20151019/13746.htm...
    Style_偉閱讀 1,478評論 0 3
  • 最初看這部作品的時候,我十一歲,是電視劇,劇情簡單,但是讓我哭了很久,那個時候,我不懂文化背景,也不懂得什么叫做小...
    南山北渡閱讀 963評論 0 2

友情鏈接更多精彩內(nèi)容