<button id="u2w23"></button>

<tbody id="u2w23"><track id="u2w23"></track></tbody><dd id="u2w23"><track id="u2w23"></track></dd><button id="u2w23"><acronym id="u2w23"></acronym></button> <tbody id="u2w23"><noscript id="u2w23"></noscript></tbody>

  • <button id="u2w23"></button><li id="u2w23"><acronym id="u2w23"><cite id="u2w23"></cite></acronym></li>

  • ?

    iOS面試基礎題型解析

    作者:達內 更新時間:2014-06-17 12:05 來源:未知 點擊:
    想必一定有很多學員在學習iOS開發技術的同時,也在關注iOS的面試題一般都涵蓋了哪些知識范圍,現在達內的金牌講師就為大家闡述一下常考題型。
    想必一定有很多學員在學習iOS開發技術的同時,也在關注iOS的面試題一般都涵蓋了哪些知識范圍,現在達內的金牌講師就為大家闡述一下常考題型。

    1.怎么理解MVC,在Cocoa中MVC是怎么實現的?
      MVC設計模式考慮三種對象:模型對象、視圖對象、和控制器對象。模型對象代表特別的知識和專業技能,它們負責保有應用程序的數據和定義操作數據的邏輯。視圖對象知道如何顯示應用程序的模型數據,而且可能允許用戶對其進行編輯。控制器對象是應用程序的視圖對象和模型對象之間的協調者。

    2. KVC和KVO區別,分別在什么情況下使用?
      KVC(Key-Value-Coding)  KVO(Key-Value-Observing)  理解KVC與KVO(鍵-值-編碼與鍵-值-監看)  當通過KVC調用對象時,比如:[self valueForKey:@”someKey”]時,程序會自動試圖通過幾種不同的方式解析這個調用。首先查找對象是否帶有 someKey 這個方法,如果沒找到,會繼續查找對象是否帶有someKey這個實例變量(iVar),如果還沒有找到,程序會繼續試圖調用 -(id) valueForUndefinedKey:這個方法。如果這個方法還是沒有被實現的話,程序會拋? ??一個NSUndefinedKeyException異常錯誤。 (Key-Value Coding查找方法的時候,不僅僅會查找someKey這個方法,還會查找getsomeKey這個方法,前面加一個get,或者_someKey以及_getsomeKey這幾種形式。同時,查找實例變量的時候也會不僅僅查找someKey這個變量,也會查找_someKey這個變量是否存在。) 設計valueForUndefinedKey:方法的主要目的是當你使用-(id)valueForKey方法從對象中請求值時,對象能夠在錯誤發生前,有最后的機會響應這個請求。
    id、nil代表什么?
      id  id和void *并非完全一樣。在上面的代碼中,id是指向struct objc_object的一個指針,這個意思基本上是說,id是一個指向任何一個繼承了Object(或者NSObject)類的對象。需要注意的是id是一個指針,所以你在使用id的時候不需要加星號。比如id foo=nil定義了一個nil指針,這個指針指向NSObject的一個任意子類。而id *foo=nil則定義了一個指針,這個指針指向另一個指針,被指向的這個指針指向NSObject的一個子類。   nil  nil和C語言的NULL相同,在objc/objc.h中定義。nil表示一個Objctive-C對象,這個對象的指針指向空(沒有東西就是空)。
      內存管理 Autorelease、retain、copy、assign的set方法和含義?
      1,你初始化(alloc/init)的對象,你需要釋放(release)它。例如:   NSMutableArray aArray = [[NSArray alloc] init];    后,需要    [aArray release];
       2,你retain或copy的,你需要釋放它。例如:   [aArray retain]   后,需要    [aArray release];
       3,被傳遞(assign)的對象,你需要斟酌的retain和release。例如:   obj2 = [[obj1 someMethod] autorelease];   對象2接收對象1的一個自動釋放的值,或傳遞一個基本數據類型(NSInteger,NSString)時: 你或希望將對象2進行retain,以防止它在被使用之前就被自動釋放掉。但是在retain后,一定要在適當的時候進行釋放。
    5. 簡述索引計數(Reference Counting)    retain值 = 索引計數(Reference Counting)    NSArray對象會retain(retain值加一)任何數組中的對象。當NSArray被卸載(dealloc)的時候,所有數組中的對象會被執行一次釋放(retain值減一)。不僅僅是NSArray,任何收集類(Collection Classes)都執行類似操作。例如NSDictionary,甚至UINavigationController。   Alloc/init建立的對象,索引計數為1。無需將其再次retain。
       [NSArray array]和[NSDate date]等“方法”建立一個索引計數為1的對象,但是也是一個自動釋放對象。所以是本地臨時對象,那么無所謂了。如果是打算在全Class中使用的變量(iVar),則必須retain它。    缺省的類方法返回值都被執行了“自動釋放”方法。(*如上中的NSArray)
      在類中的卸載方法“dealloc”中,release所有未被平衡的NS對象。(*所有未被autorelease,而retain值為1的)。
      希望以上的問題,將你的疑惑點一掃而清,在iOS培訓的道路上再接再厲吧!
    標簽:
  • 上一篇:沒有了
  • 下一篇:哪些是iOS開發面試常見題型?
  • 相關閱讀

    最新開班信息

    3G-IOS軟件工程師就業班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師就業班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師周末班
    北京潘家園中心 開課日期:9月29日
    3G-IOS軟件工程師周末班
    北京潘家園中心 開課日期:9月29日
    大香蕉99精品3线在线观看视频,亚洲欧美AV中文日韩二区91哥精品 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>