<em id="3iliw"></em>
  • <progress id="3iliw"></progress>
  • <tbody id="3iliw"><pre id="3iliw"></pre></tbody><dd id="3iliw"><noscript id="3iliw"></noscript></dd>

    <progress id="3iliw"></progress>

    課程咨詢 :0571-56020837 QQ:162156527

    達內名師推薦就業,先就業后付款

    • NET面試基礎題型解析

      發布:杭州.NET培訓      來源:企業筆試題      時間:2015-11-27


    • 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方法從對象中請求值時,對象能夠在錯誤發生 前,有后的機會響應這個請求。

      3. 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對象,這個對象的指針指向空(沒有東西就是空)。

      4. 內存管理 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的)。

    上一篇:哪些是NET面試常見題型?

    下一篇:一個小筆試題在NET上的不同表現

    新開班日期  |  更多

    .NET培訓—零基礎周末班

    .NET培訓—零基礎周末班

    開班日期:每月28日

    .NET培訓—零基礎全日制

    .NET培訓—零基礎全日制

    開班日期:每月28日

    .NET培訓工程師班--周末班

    .NET培訓工程師班--周末班

    開班日期:每月28日

    .NET培訓工程師班--全日制

    .NET培訓工程師班--全日制

    開班日期:每月28日

  • 地址:杭州市西湖區教工路6-8號求是大廈10層
  • 課程培訓電話:0571-56020837 QQ:162156527     全國服務監督電話:400-111-8989
  • 服務郵箱 tousu@tedu.cn
  • 2002-2018 達內時代科技集團有限公司 版權所有 京ICP證8000853號-56

    国拍自产亚洲 2019国拍自产在线,国拍自产亚洲,国产a在线不卡 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>