2019-01-12

iOS面試題及答案

#import跟 #include 有什么區(qū)別,@class呢佑吝,#import<> 跟 #import””有什么區(qū)別?

1).#import是Objective-C導入頭文件的關鍵字,#include是C/C++導入頭文件的關鍵字蔼卡,使用#import頭文件會自動只導入一次屯伞,不會重復導入腿箩。

2).@class告訴編譯器某個類的聲明,當執(zhí)行時劣摇,才去查看類的實現(xiàn)文件珠移,可以解決頭文件的相互包含。3).#import<>用來包含系統(tǒng)的頭文件末融,#import””用來包含用戶頭文件钧惧。


什么情況使用 weak 關鍵字,相比 assign 有什么不同滑潘?

1.在 ARC 中,在有可能出現(xiàn)循環(huán)引用的時候,往往要通過讓其中一端使用weak來解決,比如: delegate 代理屬性垢乙。

2.自身已經(jīng)對它進行一次強引用,沒有必要再強引用一次,此時也會使用weak,自定義IBOutlet控件屬性一般也使用weak;當然语卤,也可以使用strong追逮。IBOutlet連出來的視圖屬性為什么可以被設置成weak? 因為父控件的subViews數(shù)組已經(jīng)對它有一個強引用。

不同點:assign可以用基本數(shù)據(jù)類型 和?OC對象粹舵,而weak必須用于 OC對象钮孵。weak表明該屬性定義了一種“非擁有關系”。在屬性所指的對象銷毀時眼滤,屬性值會自動清空(nil)巴席。

1) 都不是強指針(不是強引用),不能保住對象的命

2) weak生成的成員變量是用__weak修飾的 : 所指向的對象銷毀后诅需,會自動變成nil指針(空指針)漾唉,不再指向已經(jīng)銷毀的對象

3) assign生成的成員變量是用__unsafe_unretained修飾的 : 所指向的對象銷毀后,仍舊指向已經(jīng)銷毀的對象


用@property聲明的 NSString / NSArray / NSDictionary 經(jīng)常使用 copy 關鍵字堰塌,為什么赵刑?如果改用strong關鍵字,可能造成什么問題场刑?

用@property聲明NSString般此、NSArray、NSDictionary經(jīng)常使用copy關鍵字,是因為他們有對應的可變類型:NSMutableString铐懊、NSMutableArray邀桑、NSMutableDictionary,他們之間可能進行賦值操作(就是把可變的賦值給不可變的)科乎,為確保對象中的字符串值不會無意間變動壁畸,應該在設置新屬性值時拷貝一份。

1.因為父類指針可以指向子類對象,使用copy的目的是為了讓本對象的屬性不受外界影響,使用copy無論給我傳入是一個可變對象還是不可對象,我本身持有的就是一個不可變的副本喜喂。

2.如果我們使用是strong,那么這個屬性就有可能指向一個可變對象,如果這個可變對象在外部被修改了,那么會影響該屬性瓤摧。

//總結:使用copy的目的是,防止把可變類型的對象賦值給不可變類型的對象時玉吁,可變類型對象的值發(fā)送變化會無意間篡改不可變類型對象原來的值照弥。

淺拷貝:只復制指向對象的指針,而不復制引用對象本身进副。

深拷貝:復制引用對象本身这揣。內存中存在了兩份獨立對象本身,當修改A時影斑,A_copy不變给赞。

【總結一句話】: 只有對不可變對象進行copy操作是指針復制(淺復制),其它情況都是內容復制(深復制)矫户!


@synthesize 和 @dynamic 分別有什么作用片迅?

@property有兩個對應的詞,一個是@synthesize(合成實例變量)皆辽,一個是@dynamic柑蛇。如果@synthesize和@dynamic都沒有寫,那么默認的就是@synthesizevar = _var;// 在類的實現(xiàn)代碼里通過 @synthesize 語法可以來指定實例變量的名字驱闷。(@synthesize var = _newVar;)

1.@synthesize的語義是如果你沒有手動實現(xiàn)setter方法和getter方法耻台,那么編譯器會自動為你加上這兩個方法。2.@dynamic告訴編譯器空另,屬性的setter與getter方法由用戶自己實現(xiàn)盆耽,不自動生成(如,@dynamicvar)扼菠。


類別的作用?繼承和類別在實現(xiàn)中有何區(qū)別?

category 可以在不獲悉摄杂,不改變原來代碼的情況下往里面添加新的方法,只能添加循榆,不能刪除修改匙姜,并且如果類別和原來類中的方法產(chǎn)生名稱沖突,則類別將覆蓋原來的方法冯痢,因為類別具有更高的優(yōu)先級。

類別主要有3個作用:

1).將類的實現(xiàn)分散到多個不同文件或多個不同框架中。

2).創(chuàng)建對私有方法的前向引用浦楣。

3).向對象添加非正式協(xié)議袖肥。

繼承可以增加,修改或者刪除方法振劳,并且可以增加屬性椎组。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市历恐,隨后出現(xiàn)的幾起案子寸癌,更是在濱河造成了極大的恐慌,老刑警劉巖弱贼,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒸苇,死亡現(xiàn)場離奇詭異,居然都是意外死亡吮旅,警方通過查閱死者的電腦和手機溪烤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來庇勃,“玉大人檬嘀,你說我怎么就攤上這事≡鹑拢” “怎么了鸳兽?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長罕拂。 經(jīng)常有香客問我扣讼,道長蚂会,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮粉渠,結果婚禮上,老公的妹妹穿的比我還像新娘旨袒。我一直安慰自己瓣铣,他們只是感情好,可當我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布碗旅。 她就那樣靜靜地躺著渡处,像睡著了一般。 火紅的嫁衣襯著肌膚如雪祟辟。 梳的紋絲不亂的頭發(fā)上医瘫,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天,我揣著相機與錄音旧困,去河邊找鬼醇份。 笑死稼锅,一個胖子當著我的面吹牛,可吹牛的內容都是我干的僚纷。 我是一名探鬼主播矩距,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怖竭!你這毒婦竟也來了锥债?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤痊臭,失蹤者是張志新(化名)和其女友劉穎哮肚,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體广匙,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡允趟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了艇潭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拼窥。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蹋凝,靈堂內的尸體忽然破棺而出鲁纠,到底是詐尸還是另有隱情,我是刑警寧澤鳍寂,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布改含,位于F島的核電站,受9級特大地震影響迄汛,放射性物質發(fā)生泄漏捍壤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一鞍爱、第九天 我趴在偏房一處隱蔽的房頂上張望鹃觉。 院中可真熱鬧,春花似錦睹逃、人聲如沸盗扇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疗隶。三九已至,卻和暖如春翼闹,著一層夾襖步出監(jiān)牢的瞬間斑鼻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工猎荠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坚弱,地道東北人蜀备。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像史汗,于是被迫代替她去往敵國和親琼掠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,587評論 2 350

推薦閱讀更多精彩內容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,093評論 1 32
  • 面試題參考1 : 面試題[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios閱讀 1,721評論 0 4
  • pd踐行一個月了停撞,時間好快,現(xiàn)在終于也出現(xiàn)了新的比較大的挑戰(zhàn)悼瓮。孩子最近三天開始大聲賴幾戈毒,來表達他的不滿,意愿沒有被...
    胖貓兒啊胖貓閱讀 212評論 0 0
  • 1.我必須要先感謝我熱情可愛的寶寶横堡,晚上洗完澡埋市,從浴室出來,她爸爸抱著她在房間門口等我命贴,她看見我出來道宅,開心的手舞足...
    傾斜5度閱讀 202評論 0 1
  • 原來那不是騙人的⌒刂耄看到絕美的風景污茵,真的會感動。 說笑了一整天葬项,忙碌了一整天泞当,洗漱之后背上自己的小包準備去前院陪...
    熙熙哈閱讀 922評論 0 2