你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> IOS面試題

IOS面試題

編輯:關於IOS

總結了一些面試題 給大家分享一下 持續更新。。。

MVC模式的理解

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

線程與進程的區別和聯系?

進程和線程都是由操作系統所體會的程序運行的基本單元,系統利用該基本單元實 現系統對應用的並發性。 程和線程的主要差別在於它們是不同的操作系統資源管理方式。進程有獨立的地址 空間,一個進程崩潰後,在保護模式下不會對其它進程產生影響,而線程只是一個 進程中的不同執行路徑。線程有自己的堆棧和局部變量,但線程之間沒有單獨的地 址空間,一個線程死掉就等於整個進程死掉,所以多進程的程序要比多線程的程序 健壯,但在進程切換時,耗費資源較大,效率要差一些。但對於一些要求同時進行 並且又要共享某些變量的並發操作,只能用線程,不能用進程。

readwrite,readonly,assign,retain,copy,nonatomic屬性的作用

@property是一個屬性訪問聲明,擴號內支持以下幾個屬性:

1,getter=getterName,setter=setterName,設置setter與getter的方法名

2,readwrite,readonly,設置可供訪問級別

2,assign,setter方法直接賦值,不進行任何retain操作,為了解決原類型與環循引 用問題

3,retain,setter方法對參數進行release舊值再retain新值,所有實現都是這個順序 (CC上有相關資料)

4,copy,setter方法進行Copy操作,與retain處理流程一樣,先舊值release,再Copy 出新的對象,retainCount為1。這是為了減少對上下文的依賴而引入的機制。

5,nonatomic,非原子性訪問,不加同步,多線程並發訪問會提高性能。注意,如 果不加此屬性,則默認是兩個訪問方法都為原子型事務訪問。鎖被加到所屬對象實 例級(我是這麼理解的...)。 @synthesize xxx; 來實現實際代碼

7.obj-c有多重繼承麼?不是的話有什麼替代方法?

cocoa 中所有的類都是NSObject 的子類 多繼承在這裡是用protocol 委托代理 來實現的 ood的多態特性 在 obj-c 中通過委托來實現.

1.ObjC中,與alloc語義相反的方法是dealloc還是release?與retain語義相反的方法是 dealloc還是release,為什麼?需要與alloc配對使用的方法是dealloc還是release,為 什麼?

答:alloc與dealloc語意相反,alloc是創建變量,dealloc是釋放變量。 retain 對應release,retain 保留一個對象。調用之後,變量的計數加1。

為什麼很多內置類如UITableViewController的delegate屬性都是assign而不是retain 的?

答:會引起循環引用。

什麼是Category? 有什麼優缺點?

類目 :為現有類添加新方法的方式 優點可以不知道源代碼的情況下給這個類添加新方法 缺點是 有可能重寫的這個方法我卻不知道

MVC的優點

◆低耦合性。視圖層和業務層分離,這樣就允許更改視圖層代碼而不用重新編譯模型和控制器代碼, 同樣,一個應用的業務流程或者業務規則的改變只需要改動MVC的模型層即可。因為模型與控制器和視 圖相分離,所以很容易改變應用程序的數據層和業務規則。

◆高重用性和可適用性。

◆較低的生命周期成本。MVC使降低開發和維護用戶接品的技術含量成為可能。

◆快速的部署。使用MVC模式使開發時間得到相當大的縮減,它使程序員(Java開發人員)集中精 力於業務邏輯,界面程序員(HTML和JSP開發人員)集中業務於表現形式上。

◆可維護性。分熟視圖層和業務邏輯層也使得WEB應用更易於維護和修改。

◆有利於軟件工程化管理。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved