2018高頻iOS開發面試題(總結)


對於要面試iOS開發的同學,可能已經看了很多的面試題。但是網上很多的面試題有些很全,但是沒有重點,有些又太少。今天小編給大家整理了一些比較重要和經常問的面試題,總共20個,半小時之內就可以看完。

1、Object-c的類可以多重繼承么?可以實現多個接口么?Category是什么?重寫一個類的方式用繼承好還是分類好?為什么?
答:
Object-c的類不可以多重繼承;
可以實現多個接口,通過實現多個接口可以完成C++的多重繼承;
Category是類別;
一般情況用分類好,用Category去重寫類的方法,僅對本Category有效,不會影響到其他類與原有類的關系。

2、#import 跟#include 有什么區別?@class呢?#import<> 跟 #import””又有什么區別?
答:

import是Objective-C導入頭文件的關鍵字,#include是C/C++導入頭文件的關鍵字,使用#import頭文件會自動只導入一次,不會重復導入,相當於#include和#pragma once;

@class告訴編譯器某個類的聲明,當執行時,才去查看類的實現文件,可以解決頭文件的相互包含;

import<>用來包含系統的頭文件,#import””用來包含用戶頭文件。

3、 屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在哪種情況下用?
答:
(1)readwrite 是可讀可寫特性;需要生成getter方法和setter方法時用。
(2)readonly 是只讀特性;只會生成getter方法,不會生成setter方法 ,不希望屬性在類外改變。
(3)assign 是賦值特性;setter方法將傳入參數賦值給實例變量,僅設置變量時用。
(4) retain 表示持有特性;setter方法將傳入參數先保留,再賦值,傳入參數的retaincount會+1。
(5)copy 表示賦值特性;setter方法將傳入對象復制一份,需要完全一份新的變量時用。
(6)nonatomic 非原子操作;決定編譯器生成的setter getter是否是原子操作,atomic表示多線程安全,一般使用nonatomic。

4、對於語句NSString*obj = [[NSData alloc] init]; obj在編譯時和運行時分別是什么類型的對象?
答: 編譯時是NSString的類型;運行時是NSData類型的對象。

5、常見的object-c的數據類型有哪些?和C的基本數據類型有什么區別?如:NSInteger和int。
答:
object-c的數據類型有NSString,NSNumber,NSArray,NSMutableArray,NSData等等,這些都是class,創建后便是對象,而C語言的基本數據類型int,只是一定字節的內存空間,用於存放數值。
NSInteger是基本數據類型,並不是NSNumber的子類,當然也不是NSObject的子類。NSInteger是基本數據類型Int或者Long的別名(NSInteger的定義typedef long NSInteger),它的區別在於,NSInteger會根據系統是32位還是64位來決定是本身是int還是Long。

6、id 聲明的對象有什么特性?
答:id 聲明的對象具有運行時的特性,即可以指向任意類型的objcetive-c的對象。

《禮記·學記》中有一句話叫做善問者,如攻堅木,先其易者,后其節目。其實作為一個開發者,有一個學習的氛圍跟一個交流圈子特別重要。這是我的iOS技術交流群:714042473 。歡迎加入一起交流共同進步 ,之后的14個iOS面試考點的答案小編也會給你。

7、原子(atomic)跟非原子(non-atomic)屬性有什么區別?

8、內存管理的幾條原則是什么?按照默認法則,那些關鍵字生成的對象需要手動釋放?在和property結合的時候怎樣有效的避免內存泄露?

9、如何對iOS設備進行性能測試?

10、Object C中創建線程的方法是什么?如果在主線程中執行代碼,方法是什么?如果想延時執行代碼、方法又是什么?

11、淺復制和深復制的區別?

12、類別的作用?繼承和類別在實現中有何區別?

13、類別和類擴展的區別?

14、代理的作用?

15、oc中可修改和不可以修改類型。

16、OC的垃圾回收機制?

17、什么是延遲加載?

18、 什么時候使用NSMutableArray,什么時候使用NSArray?

19、類NSObject的哪些方法經常被使用?

20、在iPhone應用中如何保存數據?

面試前看看面試題雖然能助你一臂之力,但是最重要的還是平時要扎扎實實的提升自己的技術能力。小編祝大家都能夠找到一個好的工作,對得起自己的努力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM