久久综合色一综合色88欧美|久久er热在这里只有精品66|国产福利一区二区不卡|日本精品动漫二区三区

    1. <address id="l3apk"><var id="l3apk"><source id="l3apk"></source></var></address>

      ios面試題及答案

      時(shí)間:2022-12-06 06:06:37 面試技巧 我要投稿

      ios面試題及答案2018

        對(duì)于iOS技術(shù)員來說,面試前的準(zhǔn)備很有必要,那么你了解2017年的iOS面試題了嗎?以下是陽光網(wǎng)小編幫你們整理的2018ios面試題及答案,一起來學(xué)習(xí)啦。

      ios面試題及答案2018

        2018ios面試題及答案(一)

        1. Object-c的類可以多重繼承么?可以實(shí)現(xiàn)多個(gè)接口么?Category是什么?重寫一個(gè)類的方式用繼承好還是分類好?為什么?

        答: Object-c的類不可以多重繼承;可以實(shí)現(xiàn)多個(gè)接口,通過實(shí)現(xiàn)多個(gè)接口可以完成C++的多重繼承;Category是類別,一般情況用分類好,用Category去重寫類的方法,僅對(duì)本Category有效,不會(huì)影響到其他類與原有類的關(guān)系。沒有,cocoa 中所有的類都是NSObject 的子類,多繼承在這里是用protocol 委托代理來實(shí)現(xiàn)的
 ,ood的多態(tài)特性在obj-c中通過委托來實(shí)現(xiàn)。

        2. #import 跟#include 又什么區(qū)別,@class呢, #import<> 跟 #import””又什么區(qū)別?

        答:#import是Objective-C導(dǎo)入頭文件的關(guān)鍵字,#include是C/C++導(dǎo)入頭文件的關(guān)鍵字,使用#import頭文件會(huì)自動(dòng)只導(dǎo)入一次,不會(huì)重復(fù)導(dǎo)入,相當(dāng)于#include和#pragma once;@class告訴編譯器某個(gè)類的聲明,當(dāng)執(zhí)行時(shí),才去查看類的實(shí)現(xiàn)文件,可以解決頭文件的相互包含;#import<>用來包含系統(tǒng)的頭文件,#import””用來包含用戶頭文件。

        3. 屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那種情況下用?

        01. readwrite 是可讀可寫特性;需要生成getter方法和setter方法時(shí)

        02. readonly 是只讀特性 只會(huì)生成getter方法 不會(huì)生成setter方法 ;不希望屬性在類外改變

        03. assign 是賦值特性,setter方法將傳入?yún)?shù)賦值給實(shí)例變量;僅設(shè)置變量時(shí);

        04. retain 表示持有特性,setter方法將傳入?yún)?shù)先保留,再賦值,傳入?yún)?shù)的retaincount會(huì)+1;

        05. copy 表示賦值特性,setter方法將傳入對(duì)象復(fù)制一份;需要完全一份新的變量時(shí)。

        06. nonatomic 非原子操作,決定編譯器生成的setter getter是否是原子操作,atomic表示多線程安全,一般使用nonatomic

        4.對(duì)于語句NSString*obj = [[NSData alloc] init]; obj在編譯時(shí)和運(yùn)行時(shí)分別時(shí)什么類型的對(duì)象?

        編譯時(shí)是NSString的類型;運(yùn)行時(shí)是NSData類型的對(duì)象

        5.常見的object-c的數(shù)據(jù)類型有那些, 和C的基本數(shù)據(jù)類型有什么區(qū)別?如:NSInteger和int

        object-c的數(shù)據(jù)類型有NSString,NSNumber,NSArray,NSMutableArray,NSData等等,這些都是class,創(chuàng)建后便是對(duì)象,而C語言的.基本數(shù)據(jù)類型int,只是一定字節(jié)的內(nèi)存空間,用于存放數(shù)值;NSInteger是基本數(shù)據(jù)類型,并不是NSNumber的子類,當(dāng)然也不是NSObject的子類。NSInteger是基本數(shù)據(jù)類型Int或者Long的別名(NSInteger的定義typedef long NSInteger),它的區(qū)別在于,NSInteger會(huì)根據(jù)系統(tǒng)是32位還是64位來決定是本身是int還是Long。

        6.id 聲明的對(duì)象有什么特性?

        Id 聲明的對(duì)象具有運(yùn)行時(shí)的特性,即可以指向任意類型的objcetive-c的對(duì)象;

        2018ios面試題及答案(二)

        1. 原子(atomic)跟非原子(non-atomic)屬性有什么區(qū)別?

        01. atomic提供多線程安全。是防止在寫未完成的時(shí)候被另外一個(gè)線程讀取,造成數(shù)據(jù)錯(cuò)誤

        02. non-atomic:在自己管理內(nèi)存的環(huán)境中,解析的訪問器保留并自動(dòng)釋放返回的值,如果指定了 nonatomic ,那么訪問器只是簡單地返回這個(gè)值。

        2. 看下面的程序,第一個(gè)NSLog會(huì)輸出什么?這時(shí)str的retainCount是多少?第二個(gè)和第三個(gè)呢? 為什么?

        NSMutableArray* ary = [[NSMutableArray array] retain];

        NSString *str = [NSString stringWithFormat:@"test"];

        [strretain];

        [aryaddObject:str];

        NSLog(@”%@%d”,str,[str retainCount]);

        [strretain];

        [strrelease];

        [strrelease];

        NSLog(@”%@%d”,str,[str retainCount]);

        [aryremoveAllObjects];

        NSLog(@”%@%d”,str,[str retainCount]);

        str的retainCount創(chuàng)建+1,retain+1,加入數(shù)組自動(dòng)+1 3

        retain+1,release-1,release-1 2

        數(shù)組刪除所有對(duì)象,所有數(shù)組內(nèi)的對(duì)象自動(dòng)-1 1

        3. 類別的作用?繼承和類別在實(shí)現(xiàn)中有何區(qū)別?

        答案:category 可以在不獲悉,不改變?cè)瓉泶a的情況下往里面添加新的`方法,只能添加,不能刪除修改。

        并且如果類別和原來類中的方法產(chǎn)生名稱沖突,則類別將覆蓋原來的方法,因?yàn)轭悇e具有更高的優(yōu)先級(jí)。

        類別主要有3個(gè)作用:

        (1)將類的實(shí)現(xiàn)分散到多個(gè)不同文件或多個(gè)不同框架中。

        (2)創(chuàng)建對(duì)私有方法的前向引用。

        (3)向?qū)ο筇砑臃钦絽f(xié)議。

        繼承可以增加,修改或者刪除方法,并且可以增加屬性。

        4 類別和類擴(kuò)展的區(qū)別。

        答案:category和extensions的不同在于 后者可以添加屬性。另外后者添加的方法是必須要實(shí)現(xiàn)的。

        extensions可以認(rèn)為是一個(gè)私有的Category。

        2018ios面試題及答案(三)

        1. 內(nèi)存管理的幾條原則時(shí)什么?按照默認(rèn)法則.那些關(guān)鍵字生成的對(duì)象 需要手動(dòng)釋放?在和property結(jié)合的時(shí)候怎樣有效的避免內(nèi)存泄露?

        誰申請(qǐng),誰釋放

        遵循Cocoa Touch的使用原則;

        內(nèi)存管理主要要避免“過早釋放”和“內(nèi)存泄漏”,對(duì)于“過早釋放”需要注意@property設(shè)置特性時(shí),一定要用對(duì)特性關(guān)鍵字,對(duì)于“內(nèi)存泄漏”,一定要申請(qǐng)了要負(fù)責(zé)釋放,要細(xì)心。

        關(guān)鍵字alloc 或new 生成的對(duì)象需要手動(dòng)釋放;

        設(shè)置正確的property屬性,對(duì)于retain需要在合適的地方釋放,

        2.如何對(duì)iOS設(shè)備進(jìn)行性能測(cè)試?

        Profile-> Instruments ->Time Profiler

        3. Object C中創(chuàng)建線程的.方法是什么?如果在主線程中執(zhí)行代碼,方法是什么?如果想延時(shí)執(zhí)行代碼、方法又是什么?

        線程創(chuàng)建有三種方法:使用NSThread創(chuàng)建、使用GCD的dispatch、使用子類化的NSOperation,然后將其加入NSOperationQueue;在主線程執(zhí)行代碼,方法是performSelectorOnMainThread,如果想延時(shí)執(zhí)行代碼可以用performSelector:onThread:withObject:waitUntilDone:

        GCD從語言、運(yùn)行時(shí)庫、系統(tǒng)擴(kuò)展等三個(gè)方面給讓使用者更充分的操作多核設(shè)備,同時(shí)它基于隊(duì)列的概念,因?yàn)槊恳粋(gè)CPU core單位時(shí)間(時(shí)間片)內(nèi)只能運(yùn)行某個(gè)隊(duì)列的某個(gè)task,并通過優(yōu)先級(jí)、FIFO等策略進(jìn)行task的切換運(yùn)行。

        GCD共提供三種隊(duì)列形式:

        01. main,即主線程,iOS的UI繪制、交互響應(yīng)都要在此線程上執(zhí)行

        02. concurrent,并發(fā)線程隊(duì)列,task的進(jìn)出隊(duì)列,都遵循FIFO策略,但隊(duì)列中的task‘看起來’是并發(fā)執(zhí)行的完成時(shí)間卻可能是以任意的順序結(jié)束。很容易理解,因?yàn)槊總(gè)task的執(zhí)行時(shí)間長短通常不一樣。

        03. serial,串行隊(duì)列,在此隊(duì)列中的task,one by one的執(zhí)行,嚴(yán)格遵守FIFO即,我們要執(zhí)行一個(gè)block(task)

        4.描述一下iOS SDK中如何實(shí)現(xiàn)MVC的開發(fā)模式

        MVC是模型、試圖、控制開發(fā)模式,對(duì)于iOS SDK,所有的View都是視圖層的,它應(yīng)該獨(dú)立于模型層,由視圖控制層來控制。所有的用戶數(shù)據(jù)都是模型層,它應(yīng)該獨(dú)立于視圖。所有的ViewController都是控制層,由它負(fù)責(zé)控制視圖,訪問模型數(shù)據(jù)。

        5 淺復(fù)制和深復(fù)制的區(qū)別?

        答案:淺層復(fù)制:只復(fù)制指向?qū)ο蟮闹羔槪粡?fù)制引用對(duì)象本身。

        深層復(fù)制:復(fù)制引用對(duì)象本身。

        意思就是說我有個(gè)A對(duì)象,復(fù)制一份后得到A_copy對(duì)象后,對(duì)于淺復(fù)制來說,A和A_copy指向的是同一個(gè)內(nèi)存資源,復(fù)制的只不過是是一個(gè)指針,對(duì)象本身資源 還是只有一份,那如果我們對(duì)A_copy執(zhí)行了修改操作,那么發(fā)現(xiàn)A引用的對(duì)象同樣被修改,這其實(shí)違背了我們復(fù)制拷貝的一個(gè)思想。深復(fù)制就好理解了,內(nèi)存中存在了 兩份獨(dú)立對(duì)象本身。

        用網(wǎng)上一哥們通俗的話將就是:

        淺復(fù)制好比你和你的影子,你完蛋,你的影子也完蛋

        深復(fù)制好比你和你的克隆人,你完蛋,你的克隆人還活著。

      【ios面試題及答案】相關(guān)文章:

      ios高級(jí)面試題及答案04-02

      高級(jí)ios工程師面試題12-09

      面試題及答案04-04

      經(jīng)典面試題及答案04-04

      經(jīng)典的面試題及答案分析12-09

      小升初面試題及答案12-09

      .net面試題及答案04-08

      護(hù)士面試題及答案04-09

      銷售面試題及答案04-09