- 相關(guān)推薦
ios面試筆試題
招聘公司出ios面試筆試題事為了選出更優(yōu)秀的人才,以下是ios面試筆試題,歡迎閱覽!
1. Object-c的類(lèi)可以多重繼承么?可以實(shí)現多個(gè)接口么?Category是什么?重寫(xiě)一個(gè)類(lèi)的方式用繼承好還是分類(lèi)好?為什么?
答: Object-c的類(lèi)不可以多重繼承;可以實(shí)現多個(gè)接口,通過(guò)實(shí)現多個(gè)接口可以完成C++的多重繼承;Category是類(lèi)別,一般情況用分類(lèi)好,用Category去重寫(xiě)類(lèi)的方法,僅對本Category有效,不會(huì )影響到其他類(lèi)與原有類(lèi)的關(guān)系。
2. #import 跟#include 又什么區別,@class呢, #import<> 跟 #import””又什么區別?
答:#import是Objective-C導入頭文件的關(guān)鍵字,#include是C/C++導入頭文件的關(guān)鍵字,使用#import頭文件會(huì )自動(dòng)只導入一次,不會(huì )重復導入,相當于#include和#pragma once;@class告訴編譯器某個(gè)類(lèi)的聲明,當執行時(shí),才去查看類(lèi)的實(shí)現文件,可以解決頭文件的相互包含;#import<>用來(lái)包含系統的頭文件,#import””用來(lái)包含用戶(hù)頭文件。
3. 屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那種情況下用?
答:
1). readwrite 是可讀可寫(xiě)特性;需要生成getter方法和setter方法時(shí)
2). readonly 是只讀特性 只會(huì )生成getter方法 不會(huì )生成setter方法 ;不希望屬性在類(lèi)外改變
3). assign 是賦值特性,setter方法將傳入參數賦值給實(shí)例變量;僅設置變量時(shí);
4). retain 表示持有特性,setter方法將傳入參數先保留,再賦值,傳入參數的retaincount會(huì )+1;
5). copy 表示賦值特性,setter方法將傳入對象復制一份;需要完全一份新的變量時(shí)。
6).nonatomic 非原子操作,決定編譯器生成的setter getter是否是原子操作,atomic表示多線(xiàn)程安全,一般使用nonatomic
4.對于語(yǔ)句N(xiāo)SString*obj = [[NSData alloc] init]; obj在編譯時(shí)和運行時(shí)分別時(shí)什么類(lèi)型的對象?
答: 編譯時(shí)是NSString的類(lèi)型;運行時(shí)是NSData類(lèi)型的對象
5.常見(jiàn)的object-c的數據類(lèi)型有那些, 和C的基本數據類(lèi)型有什么區別?如:NSInteger和int
答:object-c的數據類(lèi)型有NSString,NSNumber,NSArray,NSMutableArray,NSData等等,這些都是class,創(chuàng )建后便是對象,而C語(yǔ)言的基本數據類(lèi)型int,只是一定字節的內存空間,用于存放數值;NSInteger是基本數據類(lèi)型,并不是NSNumber的子類(lèi),當然也不是NSObject的子類(lèi)。NSInteger是基本數據類(lèi)型Int或者Long的別名(NSInteger的定義typedef long NSInteger),它的區別在于,NSInteger會(huì )根據系統是32位還是64位來(lái)決定是本身是int還是Long。
6.id 聲明的對象有什么特性?
答:Id 聲明的對象具有運行時(shí)的特性,即可以指向任意類(lèi)型的objcetive-c的對象;
【ios面試筆試題】相關(guān)文章:
騰訊公司ios面試題06-28
求java,PHP,android,iOS,linux面試題07-13
華為筆試題硬件筆經(jīng)07-11
筆試題面試題07-13
面試題07-13
經(jīng)典面試題06-28
常見(jiàn)筆試題&面試題107-13
求銀行面試的面試試題07-12
英語(yǔ)面試 特色面試題06-29
C++好的面試題和不好的面試題07-13