面試總結(jié)

面試題

技術(shù)

基礎(chǔ)

  1. 為什么說Objective-C是一門動態(tài)的語言?

    Objective-C 運行時機制是在運行的時候才決定一個對象的類型示辈,消息機制是在運行的時候通過發(fā)送消息來調(diào)用函數(shù)悯仙,也正因為運行時機制把編譯時的工作轉(zhuǎn)到運行時實現(xiàn)OC的動態(tài)特性。

  2. 講一下MVC和MVVM昼伴,MVP?

    MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,Model 呈現(xiàn)數(shù)據(jù),View 呈現(xiàn)用戶界面,而 View Controller 調(diào)節(jié)它兩者之間的交互。

    • 視圖(View):構(gòu)建UI的類窗轩;例如:按鈕,標簽座咆,進度條等痢艺。
    • 模型(Model):視圖類所需要的數(shù)據(jù);例如:表格需要顯示的文字介陶。
    • 控制器(Controller):連接視圖類和模型類堤舒,任務是使數(shù)據(jù)顯示在屏幕上。

    MVVM全名是Model View View-Model哺呜,ViewModel將表示邏輯從 Controller 移出放到一個新的對象里舌缤,即 View Model。就是那些將 Model 數(shù)據(jù)轉(zhuǎn)換為 View 可以呈現(xiàn)的東西的事情,例如將一個 NSDate 轉(zhuǎn)換為一個格式化過的 NSString国撵。

    MVP全名是Model-view-presenter陵吸,是使用者界面設計模式的一種。

    • Model 定義使用者界面所需要被顯示的數(shù)據(jù)模型介牙,一個模型包含著相關(guān)的業(yè)務邏輯壮虫。
    • View 視圖為呈現(xiàn)使用者界面的終端,用以表現(xiàn)來自 Model 的數(shù)據(jù)环础,和使用者命令路由再經(jīng)過 Presenter 對事件處理后的數(shù)據(jù)囚似。
    • Presenter 包含著元件的事件處理,負責檢索 Model 取得數(shù)據(jù)线得,和將取得的數(shù)據(jù)經(jīng)過格式轉(zhuǎn)換與 View 進行溝通饶唤。
    • MVP 設計模式通常會再加上 Controller 做為整體應用程序的后端程序工作。
  1. 為什么代理要用weak贯钩?代理的delegate和dataSource有什么區(qū)別募狂?block和代理的區(qū)別?
  1. 屬性的實質(zhì)是什么?包括哪幾個部分魏保?屬性默認的關(guān)鍵字都有哪些熬尺?@dynamic關(guān)鍵字和@synthesize關(guān)鍵字是用來做什么的摸屠?

    • @property 的本質(zhì)是: @property = ivar + getter + setter;

    • 包括哪幾個部分: iavr ; getter ; setter;``(實例變量 + 存取方法)

    • 屬性默認的關(guān)鍵字都有哪些 atomic readwrite assign

    • @dynamic關(guān)鍵字和@synthesize關(guān)鍵字是用來做什么的谓罗?

      • 1)@property有兩個對應的詞,一個是@synthesize季二,一個是@dynamic檩咱。如果@synthesize和@dynamic都沒寫,那么默認的就是@syntheszie var = _var;
      • @synthesize的語義是如果你沒有手動實現(xiàn)setter方法和getter方法胯舷,那么編譯器會自動為你加上這兩個方法刻蚯。
      • @dynamic告訴編譯器:屬性的setter與getter方法由用戶自己實現(xiàn),不自動生成桑嘶。
  2. 屬性的默認關(guān)鍵字是什么炊汹?

    atomic readwrite assign

  3. *NSString為什么要用copy關(guān)鍵字,如果用strong會有什么問題逃顶?(注意:這里沒有說用strong就一定不行讨便。使用copy和strong是看情況而定的) *

    • 因為NString,NSArray以政,NSDictionary都有自己對應的子類:NSMutableString霸褒,NSMutableArray,NSMutableDictionary盈蛮,而父類指針可以指向子類對象废菱,使用copy可以讓本對象不受外界(子對象)影響,無論給我傳入的是一個可變對象還是一個不可變對象,都能保證自身持有的是一個不可變副本殊轴。
    • 使用strong時衰倦,如果這個屬性指向一個可變對象,修改可變對象時梳凛,這個屬性值也會被修改耿币。
    • 引用借鑒:http://www.reibang.com/p/1e1a6f9c26f8
  1. 如何令自己所寫的對象具有拷貝功能?

若想令自己所寫的對象具有拷貝功能,則需實現(xiàn) NSCopying 協(xié)議韧拒。如果自定義的對象分為可變版本與不可變版本淹接,那么就要同時實現(xiàn) NSCopying 與 NSMutableCopying 協(xié)議。

具體步驟:

需聲明該類遵從 NSCopying 協(xié)議
實現(xiàn) NSCopying 協(xié)議叛溢。該協(xié)議只有一個方法:
- (id)copyWithZone:(NSZone *)zone;
注意:一提到讓自己的類用 copy 修飾符塑悼,我們總是想覆寫copy方法,其實真正需要實現(xiàn)的卻是 “copyWithZone” 方法楷掉。
  1. 可變集合類 和 不可變集合類的 copy 和 mutablecopy有什么區(qū)別厢蒜?如果是集合是內(nèi)容復制的話,集合里面的元素也是內(nèi)容復制么烹植?

    • [immutableObject copy]是淺拷貝
    • [immutableObject mutableCopy]是深拷貝
    • [mutableObject copy]是深拷貝
    • [mutableObject mutableCopy]是深拷貝

    集合對象的深拷貝只是對象本身斑鸦,而集合對象的元素還是地址的拷貝,即單層深拷貝

  2. 為什么IBOutlet修飾的UIView也適用weak關(guān)鍵字草雕?

    通過加載xib得到的用戶界面巷屿,在加載時就已經(jīng)是view hierarchy(視圖層次)的一部分了,后者中的指向都是strong的墩虹,因此IBOut指向的對象不該再被hold一次嘱巾,從而不需要在viewDidUnload方法里再將IBOut指向的對象置為nil.

  3. nonatomic和atomic的區(qū)別?atomic是絕對的線程安全么诫钓?為什么旬昭?如果不是,那應該如何實現(xiàn)菌湃?

    atomic和nonatomic區(qū)別用來決定編譯器生成的getter和setter是否為原子操作问拘。atomic提供多線程安全,是描述該變量是否支持多線程的同步訪問,如果選擇了atomic 那么就是說惧所,系統(tǒng)會自動的創(chuàng)建lock鎖骤坐,鎖定變量。nonatomic禁止多線程纯路,變量保護或油,提高性能。
    * atomic:默認是有該屬性的驰唬,這個屬性是為了保證程序在多線程情況下顶岸,編譯器會自動生成一些互斥加鎖代碼腔彰,避免該變量的讀寫不同步問題。
    * nonatomic:如果該對象無需考慮多線程的情況辖佣,請加入這個屬性霹抛,這樣會讓編譯器少生成一些互斥加鎖代碼,可以提高效率卷谈。
    * 不過atomic可并不能保證線程安全,atomic只是對setter和getter方法加鎖;要想實現(xiàn)真正的線程安全杯拐,需要對對象進行加鎖,讀取操作結(jié)束的時候再開放給其他線程訪問。

  1. UICollectionView自定義layout如何實現(xiàn)世蔗?

    自定義UICollectionViewLayout重寫以下方法:

    - (void)prepareLayout
    準備方法被自動調(diào)用端逼,以保證layout實例的正確。
    
    - (CGSize)collectionViewContentSize
    返回collectionView的內(nèi)容的尺寸
    
    - (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect
     1.返回rect中的所有的元素的布局屬性
     2.返回的是包含UICollectionViewLayoutAttributes的NSArray
     3.UICollectionViewLayoutAttributes可以是cell污淋,追加視圖或裝飾視圖的信息顶滩,
     通過不同的UICollectionViewLayoutAttributes初始化方法可以得到不同類型的UICollectionViewLayoutAttributes:
     1)layoutAttributesForCellWithIndexPath:
     2)layoutAttributesForSupplementaryViewOfKind:withIndexPath:
     3)layoutAttributesForDecorationViewOfKind:withIndexPath:
    
    - (UICollectionViewLayoutAttributes )layoutAttributesForItemAtIndexPath:(NSIndexPath )indexPath
    返回對應于indexPath的位置的cell的布局屬性
    
    - (UICollectionViewLayoutAttributes )layoutAttributesForSupplementaryViewOfKind:    (NSString )kind 
    atIndexPath:(NSIndexPath *)indexPath
    返回對應于indexPath的位置的追加視圖的布局屬性,如果沒有追加視圖可不重載
    
    - (UICollectionViewLayoutAttributes * )layoutAttributesForDecorationViewOfKind: (NSString)decorationViewKind
    atIndexPath:(NSIndexPath )indexPath
    返回對應于indexPath的位置的裝飾視圖的布局屬性寸爆,如果沒有裝飾視圖可不重載
    
    - (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
    當邊界發(fā)生改變時礁鲁,是否應該刷新布局。如果YES則在邊界變化(一般是scroll到其他地方)時赁豆,將重新計算    需要的布局信息仅醇。
    

    選自:UICollectionViewLayout布局詳解

  2. 3241

  3. 32424

  4. 34dsfsd

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市魔种,隨后出現(xiàn)的幾起案子析二,更是在濱河造成了極大的恐慌,老刑警劉巖务嫡,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甲抖,死亡現(xiàn)場離奇詭異漆改,居然都是意外死亡心铃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門挫剑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來去扣,“玉大人,你說我怎么就攤上這事樊破∮淅猓” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵哲戚,是天一觀的道長奔滑。 經(jīng)常有香客問我,道長顺少,這世上最難降的妖魔是什么朋其? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任王浴,我火速辦了婚禮,結(jié)果婚禮上梅猿,老公的妹妹穿的比我還像新娘氓辣。我一直安慰自己,他們只是感情好袱蚓,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布钞啸。 她就那樣靜靜地躺著,像睡著了一般喇潘。 火紅的嫁衣襯著肌膚如雪体斩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天颖低,我揣著相機與錄音硕勿,去河邊找鬼。 笑死枫甲,一個胖子當著我的面吹牛源武,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播想幻,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼粱栖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脏毯?” 一聲冷哼從身側(cè)響起闹究,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎食店,沒想到半個月后渣淤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吉嫩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年价认,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片自娩。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡用踩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出忙迁,到底是詐尸還是另有隱情脐彩,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布姊扔,位于F島的核電站惠奸,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏恰梢。R本人自食惡果不足惜佛南,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一证九、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧共虑,春花似錦愧怜、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至尘分,卻和暖如春猜惋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背培愁。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工著摔, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人定续。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓谍咆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親私股。 傳聞我的和親對象是個殘疾皇子摹察,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 一、深復制和淺復制的區(qū)別倡鲸? 1供嚎、淺復制:只是復制了指向?qū)ο蟮闹羔槪磧蓚€指針指向同一塊內(nèi)存單元峭状!而不復制指向?qū)ο蟮?..
    iOS_Alex閱讀 1,362評論 1 27
  • 整理一些常見的Android面試題(針對于2~3年開發(fā)經(jīng)驗中所遇到的問題) synchronized鎖靜態(tài)方法和非...
    appzy閱讀 2,275評論 4 18
  • 今日話題:你希望跟你共事的人什么特質(zhì)克滴,為什么?1.負責优床,也就是有責任心劝赔,團隊合作精神2.執(zhí)行力,不是直說不做的隱形人
    小惠_f2b8閱讀 146評論 0 0
  • 小時候 豆豆是別人手里的零食 對面而立的我 只有羨慕的份兒 小時候 豆豆是別人地里的莊稼 看了又看 卻與我無關(guān) 長...
    韓小冰閱讀 321評論 14 10
  • 【目錄】更多精彩等你喲 【第六章】蜘蛛精愛上魚鱗 同樣是在這一天羔巢,蕭圣回到臥室那個時候望忆,他把上了鎖的抽屜打開罩阵,拿出...
    小北貝傲雪閱讀 612評論 0 6