iOS程序員面試題(二)

1启涯、http的post與get區(qū)別與聯(lián)系整陌,實踐中如何選擇它們?

(1)get是從服務(wù)器上獲取數(shù)據(jù)脆侮,post是向服務(wù)器傳送數(shù)據(jù)锌畸。

(2)在客戶端,Get方式在通過URL提交數(shù)據(jù)靖避,數(shù)據(jù)在URL中可以看到蹋绽;POST方式,數(shù)據(jù)放置在HTML HEADER內(nèi)提交筋蓖。

(3)對于get方式,服務(wù)器端用Request.QueryString獲取變量的值退敦,對于post方式粘咖,服務(wù)器端用Request.Form獲取提交的數(shù)據(jù)。

(4)GET方式提交的數(shù)據(jù)最多只能有1024字節(jié)侈百,而POST則沒有此限制瓮下。

(5)安全性問題。正如在(1)中提到钝域,使用Get的時候讽坏,參數(shù)會顯示在地址欄上,而Post不會例证。所以路呜,如果這些數(shù)據(jù)是中文數(shù)據(jù)而且是非敏感數(shù)據(jù),那么使用get;如果用戶輸入的數(shù)據(jù)不是中文字符而且包含敏感數(shù)據(jù)胀葱,那么還是使用post為好漠秋。

Http定義了與服務(wù)器交互的不同方法,最基本的方法有4種抵屿,分別是GET庆锦,POST,PUT轧葛,DELETE搂抒。URL全稱是資源描述符,我們可以這樣認為:一個URL地址尿扯,它用于描述一個網(wǎng)絡(luò)上的資源求晶,而HTTP中的GET,POST姜胖,PUT誉帅,DELETE就對應(yīng)著對這個資源的查,改右莱,增蚜锨,刪4個操作。GET一般用于獲取/查詢資源信息慢蜓,而POST一般用于更新資源信息亚再。

2、談?wù)刼bj-c的優(yōu)缺點晨抡?

1) Cateogies

2) Posing

3)動態(tài)識別

4)指標計算

5)彈性訊息傳遞

6)不是一個過度復(fù)雜的C衍生語言

7) Objective-C與C++可混合編程

缺點:

1)不支援命名空間機制:須在其類別名稱加上前綴氛悬,時常引致沖突。

2)不支持運算符重載

3)不支持多重繼承:只容許對象繼承一個類別

4)使用動態(tài)運行時類型耘柱,所有的方法都是函數(shù)調(diào)用如捅,很多常見的編譯時性能優(yōu)化方法都不能應(yīng)用于Obj-C(如內(nèi)聯(lián)函數(shù)、常數(shù)傳播调煎、交互式優(yōu)化镜遣、純量取代與聚集等),性能劣于類似的對象抽象語言(如C++)士袄。

3悲关、obj-c有多重繼承么?不是的話有什么替代方法?

cocoa中所有的類都是NSObject的子類,多繼承在這里是用protocol委托代理來實現(xiàn)的娄柳。你不用去考慮繁瑣的多繼承寓辱,虛基類的概念。多態(tài)特性在obj-c中通過委托來實現(xiàn)赤拒。

4秫筏、談?wù)劙沧颗c蘋果的優(yōu)缺點诱鞠?

參考答案:蘋果系統(tǒng)優(yōu)點是左右流暢,軟件多跳昼,界面華麗般甲,圖標統(tǒng)一,很美觀鹅颊;缺點是系統(tǒng)封閉敷存,不允許用戶過多的個性化設(shè)置,而且只能在蘋果手機上用堪伍。安卓系統(tǒng)優(yōu)點是開放锚烦,可以自己擴展的東西很多,支持的硬件也多帝雇,各個價位的手機都有涮俄;缺點就是軟件太雜亂,兼容性有問題尸闸,圖標混亂不美觀彻亲。iOS的確比android流暢,這僅僅體現(xiàn)在較大軟件切換時吮廉,其他差不多流暢苞尝,iOS并不能做到完全后臺,如果它完全后臺估計也不會比安卓流暢多少宦芦。反之宙址,如果安卓只是注重單個運行,流暢度也會大大提升调卑,iOS系統(tǒng)更新沒有android那么頻繁抡砂,愛體驗的人會選安卓,那些怕煩的會選iOS恬涧。iOS的硬件需求選不及android注益,以至于android機會相對iOS較熱,較費電額溯捆。

android機優(yōu)缺點

優(yōu)點

1.可以自定義桌面以及各類插件

2.部分手機支持FM收音機

3.各種ROM刷機正所謂蘿卜白菜各有所愛眾多ROM里總有適合你的

4.實體按鍵比iphone多有些操作會很方便例子“我看電子書的時候有一個按鍵可以設(shè)置為翻頁按一下翻一頁”

5.隨意換電池聊浅,也可以用大容量電池【換特殊背殼才行】

6.機型多,1000左右的也有现使,四五千的也有選擇多

缺點

1.機型眾多導(dǎo)致的應(yīng)用不通用,每個機器都要找自己專用的

2.機型升級過快導(dǎo)致【拼硬件】的現(xiàn)象旷痕,用戶體驗較差

3.各種ROM良莠不齊碳锈,有的狂吃電量之類的缺陷

4.機型多導(dǎo)致的某種機器零件稀缺,維修困難例

5.一些老機器被Google拋棄沒有官方升級

關(guān)于后臺的問題每人都有自己的看法欺抗,我就說下【自己的看法】我比較新歡ios的偽后臺因為偽后臺不影響機子的使用售碳,而我用過的android機總需要關(guān)后臺要不然就會很卡,經(jīng)常有因為后臺程序過多導(dǎo)致來電話無法接聽因為內(nèi)存不夠

下面說iphone的優(yōu)缺點

優(yōu)點

1.簡單易懂,容易操作

2.應(yīng)用程序多贸人,質(zhì)量好间景,種類齊全

3.硬件和軟件高度匹配,硬件能很好地運轉(zhuǎn)軟件艺智,軟件能很好地發(fā)揮硬件的機能

4.配件多各種殼子鏡頭

5.用戶體驗好

6.手機質(zhì)感好【不知道算不算】

缺點

1.貴【不過可以買3Gs】

2.【中國區(qū)】售后服務(wù)不完善導(dǎo)致維修一下就好好幾百

3.易遭小偷關(guān)顧

4.軟件收費

5.易造成攀比現(xiàn)象

6.實體按鍵少

5倘要、代理通知kvo在不使用的時候怎么做?

通知中心NotificationCenter十拣,它是一個單例對象封拧,允許當事件發(fā)生時通知一些對象。它允許我們在低程度耦合的情況下夭问,滿足控制器與一個任意的對象進行通信的目的泽西。這種模式的基本特征是為了讓其他的對象能夠接收到在該controller中發(fā)生某種事件而產(chǎn)生的消息,controller用一個key(通知名稱)缰趋。這樣對于controller來說是匿名的捧杉,其他的使用同樣的key來注冊了該通知的對象(即觀察者)能夠?qū)νㄖ氖录鞒龇磻?yīng)。

6秘血、你單例怎么理解怎么用的?

Singleton Pattern單例設(shè)計模式味抖,通過單例模式可以保證系統(tǒng)中一個類只有一個實例而且該實例易于外界訪問,從而方便對實例個數(shù)的控制并節(jié)約系統(tǒng)資源直撤。如果希望在系統(tǒng)中某個類的對象只能存在一個非竿,單例模式是最好的解決方案。類只能有一個實例谋竖,而且必須從一個為人熟知的訪問點對其進行訪問红柱,比如工廠方法。這個唯一的實例只能通過子類化進行擴展蓖乘,而且擴展的對象不會破壞客戶端代碼锤悄。例如,UIApplication的sharedApplication方法嘉抒,任何時候都會返回一個當前應(yīng)用程序的UIApplication實例零聚。在程序中,我需要一系列的對象些侍,他們每一個內(nèi)部都包含有一組變量和功能隶症,是靜態(tài)的,而且整個程序都只需要擁有一個該類的對象岗宣。例如:1.控制程序執(zhí)行的命令器蚂会;2.管理數(shù)據(jù)庫;3.音效控制耗式;4.文件處理

7胁住、sdwebimage緩存圖片怎么實現(xiàn)的趁猴,在內(nèi)存中有緩存嗎?

SDWebImage托管在github上。這個類庫提供一個UIImageView類別以支持加載來自網(wǎng)絡(luò)的遠程圖片彪见。具有緩存管理儡司、異步下載、同一個URL下載次數(shù)控制和優(yōu)化等特征余指。SDWebImage提供了如下三個category來進行緩存捕犬。MKAnnotationView(WebCache)UIButton(WebCache)浪规、UIImageView(WebCache)或听。

SDImageCache類提供一個創(chuàng)建空緩存的實例,并用方法imageForKey:來尋找當前緩存笋婿。UIImage *myCachedImage = [[SDImageCache sharedImageCache] imageFromKey:myCacheKey];存儲一個圖像到緩存是使用方法storeImage: forKey:默認情況下誉裆,圖像將被存儲在內(nèi)存緩存和磁盤緩存中。如果僅僅是想內(nèi)存緩存中缸濒,要使用storeImage:forKey:toDisk:方法的第三個參數(shù)帶一負值來替代足丢。

8、來說說oc這門語言吧庇配,和c c++比斩跌,你覺得哪個效率高,高到哪里了?

object_c比C++稍慢捞慌,是因為object_c的一些語言特性耀鸦,比如反射,影響了執(zhí)行效率啸澡。區(qū)別主要有以下一些方面袖订。單一繼承:Objective-C不支持多重繼承,(同Java和Smalltalk)嗅虏,而C++語言支持多重繼承洛姑。動態(tài):Objective-C是動態(tài)定型(dynamicaly typed)所以它的類庫比C++要容易操作。Objective-C在運行時可以允許根據(jù)字符串名字來訪問方法和類皮服,還可以動態(tài)連接和添加類楞艾。C++跟從面向?qū)ο缶幊汤锏腟imula67(一種早期OO語言)學派,而Objecive-C屬于Smalltalk學派龄广。 在C++里硫眯,對象的靜態(tài)類型決定你是否可以發(fā)送消息給它,而對Objecive-C來說择同,由動態(tài)類型來決定舟铜。Simula 67學派更安全,因為大部分錯誤可以在編譯時查出奠衔。而Smalltalk學派更靈活谆刨,比如一些Smalltalk看來無誤的程序拿到Simualr 67那里就無法通過。從很多方面來看归斤,C++和Objective-C的差別痊夭,與其說時技術(shù)上的,不如說是思維方式上的脏里。

9她我、還有GCD用的那些api,怎么處理線程間依賴, GCD的group操作有什么?

GCD是底層的C語言構(gòu)成的API,提供了一種新的方法來進行并發(fā)程序編寫迫横。從基本功能上講番舆,GCD有點像NSOperationQueue,他們都允許程序?qū)⑷蝿?wù)切分為多個單一任務(wù)然后提交至工作隊列來并發(fā)地或者串行地執(zhí)行矾踱。GCD比之NSOpertionQueue更底層更高效恨狈,并且它不是Cocoa框架的一部分。GCD的API很大程度上基于block呛讲,當然禾怠,GCD也可以脫離block來使用,比如使用傳統(tǒng)c機制提供函數(shù)指針和上下文指針贝搁。實踐證明吗氏,當配合block使用時,GCD非常簡單易用且能發(fā)揮其最大能力雷逆。如果NSOperation對象有執(zhí)行順利要求的話弦讽,比如operationB需要在operationA執(zhí)行完畢后才可以 執(zhí)行,那就可以通過設(shè)置NSOperation之間的依賴關(guān)系來實現(xiàn):[operationB addDependency:operationA]膀哲。

10往产、分析json、xml的區(qū)別?json等太、xml解析方式的底層是如何處理的?

區(qū)別:(1)可讀性方面:基本相同,xml的可讀性比較好

(2)可擴展性方面:都具有很好的擴展性

(3)編碼難度方面:相對而言:JSON的編碼比較容易

(4)解碼難度:json的解碼難度基本為零,xml需要考慮子節(jié)點和父節(jié)點(5)數(shù)據(jù)體積方面:json相對于xml來講,數(shù)據(jù)體積小,傳遞的速度跟快些(6)數(shù)據(jù)交互方面:json與JavaScript的交互更加方面,更容易解析處理,更好的數(shù)據(jù)交互

(7)數(shù)據(jù)描述方面:xml對數(shù)據(jù)描述性比較好

(8)傳輸速度方面:json的速度遠遠快于xml

JSON底層原理:遍歷字符串中的字符,最終根據(jù)格式規(guī)定的特殊字符,比如{}號,[]號, :號等進行區(qū)分,{}號是一個字典的開始,[]號是一個數(shù)組的開始, :號是字典的鍵和值的分水嶺,最終乃是將json數(shù)據(jù)轉(zhuǎn)化為字典,字典中值可能是字典,數(shù)組,或字符串而已捂齐。

XML底層原理:XML解析常用的解析方法有兩種:DOM解析和SAX解析。DOM采用建立樹形結(jié)構(gòu)的方式訪問XML文檔,而SAX采用的事件模型缩抡。奠宜。DOM解析把XML文檔轉(zhuǎn)化為一個包含其內(nèi)容的樹,并可以對樹進行遍歷。使用DOM解析器的時候需要處理整個XML文檔,所以對性能和內(nèi)存的要求比較高瞻想。SAX在解析XML文檔的時候可以觸發(fā)一系列的事件,當發(fā)現(xiàn)給定的tag的時候,它可以激活一個回調(diào)方法,告訴該方法制定的標簽已經(jīng)找到压真。SAX對內(nèi)存的要求通常會比較低,因為它讓開發(fā)人員自己來決定所要處理的tag。特別是當開發(fā)人員只需要處理文檔中所包含的部分數(shù)據(jù)時,SAX這種擴展能力得到了更好的體現(xiàn)蘑险。

11滴肿、面向?qū)ο蟮娜筇卣?并作簡單的介紹?

面向?qū)ο蟮娜齻€基本特征是:封裝佃迄、繼承泼差、多態(tài)贵少。封裝是面向?qū)ο蟮奶卣髦?是對象和類概念的主要特性。 封裝,也就是把客觀事物封裝成抽象的類,并且類可以把自己的 數(shù)據(jù)和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏堆缘。隱藏對象的屬性和實現(xiàn)細節(jié),僅對外公開接口,提高代 碼安全性,封轉(zhuǎn)程度越高,獨立性越強,使用越方便滔灶。 繼承是指這樣一種能力:它可以使用現(xiàn)有類的所有功能,并在無需重新編寫原來的類的情況下對這些功能進行擴展。 通過 繼承創(chuàng)建的新類稱為“子類”或“派生類”吼肥。 被繼承的類稱為“基類”录平、“父類”或“超類” 多態(tài)性:允許你將父對象設(shè)置成為和一個或更多的他的子對象相等的技術(shù),賦值之后,父對象就可以根據(jù)當前賦值給它的子 對象的特性以不同的方式運作。簡單的說,就是一句話:允許將子類類型的指針賦值給父類類型的指針 12缀皱、我們說的obc是動態(tài)運行時語言是什么意思? 多態(tài)斗这。主要是將數(shù)據(jù)類型的確定由編譯時,推遲到了運行時。這個問題其實淺涉及到兩個概念,運行時和多態(tài)啤斗。簡單來說, 運行時機制使我們直到運行時才去決定一個對象的類別,以及調(diào)用該類別對象指定方法表箭。多態(tài):不同對象以自己的方式響應(yīng) 相同的消息的能力叫做多態(tài)。意思就是假設(shè)生物類(life)都用有一個相同的方法-eat;那人類屬于生物,豬也屬于生物,都 繼承了life后,實現(xiàn)各自的eat,但是調(diào)用是我們只需調(diào)用各自的eat方法争占。也就是不同的對象以自己的方式響應(yīng)了相同的消 息(響應(yīng)了eat這個選擇器)燃逻。因此也可以說,運行時機制是多態(tài)的基礎(chǔ) 。

12臂痕、簡述NotificationCenter伯襟、KVC、KVO握童、Delegate?并說明它們之間的區(qū)別?

Notification是觀察者模式的實現(xiàn),KVO是觀察者模式的OB-C底層實現(xiàn)姆怪。NOtification通過Notifydcation addobserver和remove observer工作。KVO是鍵值監(jiān)聽,鍵值觀察機制,提供了觀察某一屬性變化的方法KVC是鍵值編碼,是一種間接訪問對象的屬性,使用字符串來標示屬性(例如:setValue:forKey:) Delegate:把某個對象要做的事情委托給別的對象去做澡绩。那么別的對象就是這個對象的代理,代替它來打理要做的事稽揭。反映到程序中,首先要明確一個對象的委托方是哪個對象,委托所做的內(nèi)容是什么。

13肥卡、線程與進程的區(qū)別和聯(lián)系?

線程是進程的基本單位 進程和線程都是由操作系統(tǒng)所體會的程序運行的基本單元,系統(tǒng)利用該基本單元實現(xiàn)系統(tǒng)對應(yīng)用的并發(fā)性溪掀。 進程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式。進程有獨立的地址空間,一個進程崩潰后,在保護模式下 不會對其它進程產(chǎn)生影響,而線程只是一個進程中的不同執(zhí)行路徑步鉴。線程有自己的堆棧和局部變量,但線程之間沒有單獨的 地址空間,一個線程死掉就等于整個進程死掉,所以多進程的程序要比多線程的程序健壯,但在進程切換時,耗費資源較 大,效率要差一些揪胃。但對于一些要求同時進行并且又要共享某些變量的并發(fā)操作,只能用線程,不能用進程。

14氛琢、什么是Protocol?什么是代理?寫一個委托的interface?委托的property聲明用什么屬性?為什么?

Protocol:一個方法簽名的列表,在其中可以定義若干個方法喊递。根據(jù)配置,遵守協(xié)議的類,會實現(xiàn)這個協(xié)議中的若干個方法。

代理:實現(xiàn)這個協(xié)議中的方法的類委托的interface:聲明一個某協(xié)議的屬性delagate用assgin屬性,原因是,為了避免循環(huán)引用阳似。

15骚勘、iphone app為什么會被打回來,如何制止?

app的設(shè)置界面、按鈕使用了類似iphone的操作方式以及icon的圓角設(shè)計->重新設(shè)計?app的年齡設(shè)置太低->改了年齡?app里有實物獎勵->免責聲明,和蘋果無關(guān)?app描述里提了后續(xù)版本的功能的字樣->刪除?app有打分的功能->有reject的,也有通過的?app需要使用location,沒有提示用戶->加了提示,允許用戶拒絕?app沒提供測試賬號->提供

app里有私有api ->修改?應(yīng)用內(nèi)含有有某公司LOGO的圖片,沒有該公司授權(quán)文件,被拒->修改

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市俏讹,隨后出現(xiàn)的幾起案子当宴,更是在濱河造成了極大的恐慌,老刑警劉巖泽疆,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件即供,死亡現(xiàn)場離奇詭異,居然都是意外死亡于微,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門青自,熙熙樓的掌柜王于貴愁眉苦臉地迎上來株依,“玉大人,你說我怎么就攤上這事延窜×低螅” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵脏嚷,是天一觀的道長偎球。 經(jīng)常有香客問我半抱,道長,這世上最難降的妖魔是什么哈肖? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮念秧,結(jié)果婚禮上淤井,老公的妹妹穿的比我還像新娘。我一直安慰自己摊趾,他們只是感情好币狠,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著砾层,像睡著了一般漩绵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肛炮,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天止吐,我揣著相機與錄音,去河邊找鬼铸董。 笑死祟印,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的粟害。 我是一名探鬼主播蕴忆,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼悲幅!你這毒婦竟也來了套鹅?” 一聲冷哼從身側(cè)響起站蝠,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎卓鹿,沒想到半個月后菱魔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吟孙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年澜倦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片杰妓。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡藻治,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出巷挥,到底是詐尸還是另有隱情桩卵,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布倍宾,位于F島的核電站雏节,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏高职。R本人自食惡果不足惜钩乍,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望初厚。 院中可真熱鬧件蚕,春花似錦、人聲如沸产禾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亚情。三九已至妄痪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間楞件,已是汗流浹背衫生。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留土浸,地道東北人罪针。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像黄伊,于是被迫代替她去往敵國和親泪酱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法墓阀,內(nèi)部類的語法毡惜,繼承相關(guān)的語法,異常的語法斯撮,線程的語...
    子非魚_t_閱讀 31,596評論 18 399
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 1,966評論 0 7
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,346評論 0 35
  • 多線程经伙、特別是NSOperation 和 GCD 的內(nèi)部原理。運行時機制的原理和運用場景勿锅。SDWebImage的原...
    LZM輪回閱讀 2,004評論 0 12
  • 轉(zhuǎn)眼間又是一年高考日帕膜,又有無數(shù)的高考學子進入考場迎來他們高中時光最后一場重要的考試。 現(xiàn)在的你已經(jīng)離那場考試過去多...
    安心我想要閱讀 264評論 0 0