<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

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

    • 12道NET常見面試試題及詳解

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


    •            1. Object C中創建線程的方法是什么?如果在主線程中執行代碼,方法是什么?如果想延時執行代碼、方法又是什么?
                 解答:線程創建有三種方法:使用NSThread創建、使用 GCD的dispatch、使用子類化的NSOperation,然后將其加入NSOperationQueue;在主線程執行代碼,方法是 performSelectorOnMainThread,如果想延時執行代碼可以用 performSelector:onThread:withObject:waitUntilDone:
                 2.描述一下iOS SDK中如何實現MVC的開發模式
                 解答:MVC是模型、試圖、控制開發模式,對于iOS SDK,所有的View都是視圖層的,它應該獨立于模型層,由視圖控制層來控制。所有的用戶數據都是模型層,它應該獨立于視圖。所有的 ViewController都是控制層,由它負責控制視圖,訪問模型數據。
                 3.淺復制和深復制的區別?
                 解答:淺層復制:只復制指向對象的指針,而不復制引用對象本身。深層復制:復制引用對象本身。意思就是說我有個A對象,復制一份后得到A_copy對象 后,對于淺復制來說,A和A_copy指向的是同一個內存資源,復制的只不過是是一個指針,對象本身資源還是只有一份,那如果我們對A_copy執行了修 改操作,那么發現A引用的對象同樣被修改,這其實違背了我們復制拷貝的一個思想。深復制就好理解了,內存中存在了兩份獨立對象本身。用網上一哥們通俗的話 將就是:淺復制好比你和你的影子,你完蛋,你的影子也完蛋深復制好比你和你的克隆人,你完蛋,你的克隆人還活著。
                 4.類別的作用?繼承和類別在實現中有何區別?
                 解答:category 可以在不獲悉,不改變原來代碼的情況下往里面添加新的方法,只能添加,不能刪除修改。并且如果類別和原來類中的方法產生名稱沖突,則類別將覆蓋原來的方法,因為類別具有更高的優先級。
                 類別主要有3個作用:
                 (1)將類的實現分散到多個不同文件或多個不同框架中。
                 (2)創建對私有方法的前向引用。
                 (3)向對象添加非正式協議。
                 繼承可以增加,修改或者刪除方法,并且可以增加屬性。
                 5.類別和類擴展的區別。
                 解答:category和extensions的不同在于 后者可以添加屬性。另外后者添加的方法是必須要實現的。extensions可以認為是一個私有的Category。
                 6.談談 KVO and KVC?
                 解答:kvc:鍵 - 值編碼是一種間接訪問對象的屬性使用字符串來標識屬性,而不是通過調用存取方法,直接或通過實例變量訪問的機制。很多情況下可以簡化程序代碼。apple文檔其實給了一個很好的例子。
                 kvo:鍵值觀察機制,他提供了觀察某一屬性變化的方法,極大的簡化了代碼。具體用看到嗯哼用到過的一個地方是對于按鈕點擊變化狀態的的監控。
                 7.frame和bounds有什么不同?
                 解答:frame指的是:該view在父view坐標系統中的位置和大小。(參照點是父親的坐標系統)bounds指的是:該view在本身坐標系統中 的位置和大小。(參照點是本身坐標系統)
                 8.Object-c的類可以多重繼承么?可以實現多個接口么?重寫一個類的方式用繼承好還是分類好?為什么?
                 解答:Objective-c只支持單繼承,如果要實現多繼承的話,可以通過類別和協議的方式來實現,cocoa 中所有的類都是NSObject 的子類,多繼承在這里是用protocol 委托代理 來實現的。
                 9.MVC是什么?
                 解答:MVC設計模式考慮三種對象:模型對象、視圖對象、和控制器對象。模型對象代表特別的知識和專業技能,它們負責保有應用程序的數據和定義操作數據 的邏輯。視圖對象知道如何顯示應用程序的模型數據,而且可能允許用戶對其進行編輯。控制器對象是應用程序的視圖對象和模型對象之間的協調者。
                 10.自動釋放池跟GC(垃圾回收)有什么區別?iPhone上有GC么?[pool release]和[pool drain]有什么區別?
                 解答:iPhone上沒有GC。iPhone開發的時候沒有垃圾回收機制。在垃圾回收環境中,release是一個空操作。因 此,NSAutoreleasePool提供了drain方法,在引用計數環境中,該方法的作用等同于調用release,但在垃圾回收環境中,它會觸發 垃圾回收(如果自上次垃圾回收以來分配的內存大于當前的閾值)。因此,在通常情況下,您應該使用drain而不是release來銷毀自動釋放池。
                 11. 線程與進程的區別和聯系?
                 解答:進程和線程都是由操作系統所體會的程序運行的基本單元,系統利用該基本單元實現系統對應用的并發性。程和線程的主要差別在于它們是不同的操作系統 資源管理方式。進程有獨立的地址空間,一個進程崩潰后,在保護模式下不會對其它進程產生影響,而線程只是一個進程中的不同執行路徑。線程有自己的堆棧和局 部變量,但線程之間沒有單獨的地址空間,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯,但在進程切換時,耗費資源較大,效率要 差一些。但對于一些要求同時進行并且又要共享某些變量的并發操作,只能用線程,不能用進程。
                 12.在一個對象的方法里面: self.name =“object”; 和 name=”object” 有什么不同嗎?
                 解答:self.name ="object"會調用對象的setName()方法,name ="object"會直接把object賦值給當前對象的name 屬性。并且self.name 這樣retainCount會加1,而name就不會。

    上一篇:5道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在线不卡 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>