iOS面試題 (1)

文/Peter__Pan(簡(jiǎn)書作者)
原文鏈接:http://www.reibang.com/p/e7ac8126a15c
從中摘取了一些辟狈。

O、簡(jiǎn)述MVC模式中M夏跷、V哼转、C分別指代什么及發(fā)揮的作用?

MVC開始是存在于Desktop(桌面)程序中的槽华,M是指數(shù)據(jù)模型壹蔓,V是指用戶界面,
C則是控制器猫态,使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離佣蓉。C存在的目的則是確保M和V
的同步,一旦M改變亲雪,V應(yīng)該同步更新勇凭。

視圖是用戶看到并與之交互的界面,視圖沒(méi)有真正的處理發(fā)生义辕,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還
是一個(gè)雇員列表虾标,作為視圖來(lái)講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式灌砖。

模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則璧函,模型返回的數(shù)據(jù)是中立的,就是說(shuō)模型與數(shù)據(jù)格式無(wú)關(guān)基显,這樣一個(gè)
模型能為多個(gè)視圖提供數(shù)據(jù)蘸吓,由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用
,所以減少了代碼的重復(fù)性撩幽。

控制器接受用戶的輸入并調(diào)用模型和視圖去完成用戶的需求库继,控制器本身不輸出任何東西和做任何處理。
它只是接收請(qǐng)求并決定調(diào)用哪個(gè)模型構(gòu)件去處理請(qǐng)求摸航,然后再確定用哪個(gè)視圖來(lái)顯示返回的數(shù)據(jù)制跟。

1、MVC是什么酱虎?有什么特性?

MVC是一種設(shè)計(jì)形式擂涛,由模型读串、視圖聊记、控制器3部分組成。
模型:保存應(yīng)用程序數(shù)據(jù)的類恢暖,處理業(yè)務(wù)邏輯的類
視圖:窗口排监,控件和其他用戶能看到的并且能交互的元素
控制器:將模型和試圖綁定在一起,確定如何處理用戶輸入的類

2杰捂、內(nèi)存管理的幾條原則時(shí)什么舆床?

誰(shuí)申請(qǐng),誰(shuí)釋放
遵循Cocoa Touch的使用原則嫁佳;
內(nèi)存管理主要要避免“過(guò)早釋放”和“內(nèi)存泄漏”挨队,對(duì)于“過(guò)早釋放”需要注意@property設(shè)置特性時(shí),
一定要用對(duì)特性關(guān)鍵字蒿往,對(duì)于“內(nèi)存泄漏”盛垦,一定要申請(qǐng)了要負(fù)責(zé)釋放,要細(xì)心瓤漏。

3腾夯、如何對(duì)iOS設(shè)備進(jìn)行性能測(cè)試?

Profile-> Instruments ->Time Profiler

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

MVC是模型蔬充、試圖蝶俱、控制開發(fā)模式,對(duì)于iOS SDK饥漫,所有的View都是視圖層的榨呆,它應(yīng)該獨(dú)立于模型層,
由視圖控制層來(lái)控制趾浅。所有的用戶數(shù)據(jù)都是模型層愕提,它應(yīng)該獨(dú)立于視圖。所有的ViewController都是
控制層皿哨,由它負(fù)責(zé)控制視圖浅侨,訪問(wèn)模型數(shù)據(jù)

5、**iPhone5 的屏幕分辨率大小為 1136* 640 **

屏幕分辨率:用于量度位圖圖像內(nèi)數(shù)據(jù)量多少的一個(gè)參數(shù)证膨。通常表示成ppi(每英寸像素Pixel per inch)如输。
屏幕物理尺寸不變,分辨率越高央勒,每單位面積內(nèi)包含的細(xì)節(jié)(像素點(diǎn))越多不见。

6、OSI(Open System Interconnection)開放式系統(tǒng)互聯(lián)參考模型 把網(wǎng)絡(luò)協(xié)議從邏輯上分為了7層崔步,試列舉常見的應(yīng)用層協(xié)議稳吮。


在開放系統(tǒng)互連(OSI)模型中的最高層,為應(yīng)用程序提供服務(wù)以保證通信井濒,但不是進(jìn)行通信的應(yīng)用程序本身灶似。

Telnet協(xié)議是TCP/IP協(xié)議族中的一員列林,是Internet遠(yuǎn)程登陸服務(wù)的標(biāo)準(zhǔn)協(xié)議和主要方式。它為用戶提供了
在本地計(jì)算機(jī)上完成遠(yuǎn)程主機(jī)工作的能力酪惭。

FTP文件傳輸協(xié)議是TCP/IP網(wǎng)絡(luò)上兩臺(tái)計(jì)算機(jī)傳送文件的協(xié)議希痴,F(xiàn)TP是在TCP/IP網(wǎng)絡(luò)和INTERNET上最早
使用的協(xié)議之一,它屬于網(wǎng)絡(luò)協(xié)議組的應(yīng)用層春感。

 HTTP-Hypertext transfer protocol超文本傳輸協(xié)議, 是分布式砌创,協(xié)作式,超媒體系統(tǒng)應(yīng)用之間
的通信協(xié)議鲫懒。是萬(wàn)維網(wǎng)(world wide web)交換信息的基礎(chǔ)嫩实。

SMTP(Simple MailTransfer Protocol)即簡(jiǎn)單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址
傳送郵件的規(guī)則,由它來(lái)控制信件的中轉(zhuǎn)方式刀疙,它幫助每臺(tái)計(jì)算機(jī)在發(fā)送或中轉(zhuǎn)信件時(shí)找到下一個(gè)目的地舶赔。

TIME protocol(時(shí)間協(xié)議)是一個(gè)在RFC 868內(nèi)定義的網(wǎng)絡(luò)協(xié)議。它用作提供機(jī)器可讀的日期時(shí)間資訊谦秧。

DNS 是域名系統(tǒng) (Domain NameSystem) 的縮寫竟纳,是因特網(wǎng)的一項(xiàng)核心服務(wù),它作為可以將域名和
IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù)疚鲤。

SNMP(Simple Network ManagementProtocol,簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議)的前身是簡(jiǎn)單網(wǎng)關(guān)監(jiān)控
協(xié)議(SGMP)锥累,用來(lái)對(duì)通信線路進(jìn)行管理。

TFTP(Trivial FileTransfer Protocol,簡(jiǎn)單文件傳輸協(xié)議)是TCP/IP協(xié)議族中的一個(gè)用來(lái)在客戶
機(jī)與服務(wù)器之間進(jìn)行簡(jiǎn)單文件傳輸?shù)膮f(xié)議集歇,提供不復(fù)雜桶略、開銷不大的文件傳輸服務(wù)。端口號(hào)為69诲宇。

7际歼、網(wǎng)絡(luò)傳輸層協(xié)議中,基于TCP/IP協(xié)議和UDP/IP的連接有什么區(qū)別姑蓝?

TCP:TransmissionControl Protocol 傳輸控制協(xié)議TCP是一種面向連接(連接導(dǎo)向)的鹅心、
可靠的、基于字節(jié)流的運(yùn)輸層(Transport layer)通信協(xié)議纺荧,由IETF的RFC 793說(shuō)明(specified)旭愧。

UDP 是User DatagramProtocol的簡(jiǎn)稱, 中文名是用戶數(shù)據(jù)包協(xié)議宙暇,是OSI 參考模型中一種無(wú)連接的傳輸層協(xié)
議输枯,提供面向事務(wù)的簡(jiǎn)單不可靠信息傳送服務(wù),IETF RFC 768是UDP的正式規(guī)范占贫。

面向連接:是指通信雙方在通信時(shí)桃熄,要事先建立一條通信線路,其有三個(gè)過(guò)程:建立連接型奥、使用連接和釋放連接
蜻拨。電話系統(tǒng)是一個(gè)面向連接的模式池充,撥號(hào)桩引、通話缎讼、掛機(jī);TCP協(xié)議就是一種面向連接的協(xié)議坑匠。

面向無(wú)連接:是指通信雙方不需要事先建立一條通信線路血崭,而是把每個(gè)帶有目的地址的包(報(bào)文分組)送到線路上,
由系統(tǒng)自主選定路線進(jìn)行傳輸厘灼。郵政系統(tǒng)是一個(gè)無(wú)連接的模式夹纫,天羅地網(wǎng)式的選擇路線,天女散花式的傳播形式设凹;
IP舰讹、UDP協(xié)議就是一種無(wú)連接協(xié)議。

8闪朱、iOS中有哪些回調(diào)機(jī)制月匣,并作簡(jiǎn)單的比較。

各種回調(diào)機(jī)制的比較:
1)目標(biāo)動(dòng)作對(duì):當(dāng)兩個(gè)對(duì)象之間有比較緊密的關(guān)系時(shí)奋姿,如視圖控制器與其下的某個(gè)視圖锄开。
2)代理:也叫委托,當(dāng)某個(gè)對(duì)象收到多個(gè)事件称诗,并要求同一個(gè)對(duì)象來(lái)處理所有事件時(shí)萍悴。
   委托機(jī)制依賴于某個(gè)協(xié)議定義的方法來(lái)發(fā)送消息。
3)通告機(jī)制:當(dāng)需要多個(gè)對(duì)象或兩個(gè)無(wú)關(guān)對(duì)象處理同一個(gè)事件時(shí)寓免。
4)Block或者閉包:適用于回調(diào)只發(fā)生一次的簡(jiǎn)單任務(wù)癣诱。

9、列出在編碼中哪些編碼習(xí)慣有助于提高代碼質(zhì)量袜香、軟件性能和健壯性撕予,減少程序崩潰。

  • 使用嚴(yán)格的命名規(guī)則(如匈牙利命名法)能夠避免不必要的類型轉(zhuǎn)換錯(cuò)誤困鸥。
  • 在編碼前先設(shè)計(jì)好流程圖或使用偽代碼嗅蔬,清晰化整個(gè)設(shè)計(jì)意圖。
  • 對(duì)自己的代碼進(jìn)行嚴(yán)格的單元測(cè)試(unit testing)疾就。

單元測(cè)試是指對(duì)軟件中的最小可測(cè)試單元進(jìn)行檢查和驗(yàn)證澜术。如C語(yǔ)言中單元指一個(gè)函數(shù),Java里單元指一個(gè)類猬腰,圖形化的軟件中可以指一個(gè)窗口或一個(gè)菜單等鸟废。總的來(lái)說(shuō)姑荷,單元就是人為規(guī)定的最小的被測(cè)功能模塊盒延。 單元測(cè)試是在軟件開發(fā)過(guò)程中要進(jìn)行的最低級(jí)別的測(cè)試活動(dòng)缩擂,軟件的獨(dú)立單元將在與程序的其他部分相隔離的情況下進(jìn)行測(cè)試。

  • 異常的處理首先不要輕易使用異常的捕獲添寺,其次要盡可能捕獲具體的異常胯盯。對(duì)于異常的處理最好能夠采用封裝的方式,大家統(tǒng)一使用计露。這樣可以保證異常處理的一致性也可以保證當(dāng)異常出現(xiàn)時(shí)性能的穩(wěn)定博脑。
  • 使用內(nèi)省的方法檢查方法的輸入
  • 采用增量式的編程方式。采用增量式編程和測(cè)試票罐,會(huì)傾向于創(chuàng)建更小的方法和更具內(nèi)聚性的類叉趣。你應(yīng)該經(jīng)常評(píng)估代碼質(zhì)量,并不時(shí)的進(jìn)行許多小調(diào)整该押,而不是一次修改許多東西疗杉。在寫了幾行代碼之后,就應(yīng)該進(jìn)行一次構(gòu)建/測(cè)試蚕礼。在沒(méi)有得到反饋時(shí)烟具,你不要走的太遠(yuǎn)。
  • 使用工具(如Instrument)來(lái)幫助檢查內(nèi)存泄漏闻牡、過(guò)早釋放內(nèi)存净赴、CPU使用效率等問(wèn)題。
  • 消除所有的編譯警告罩润,警告就是錯(cuò)誤玖翅。
  • 寫防御性的代碼,使用內(nèi)省的方法檢查傳入的參數(shù)割以。

10金度、 堆和棧的區(qū)別?

 管理方式:
- 對(duì)于棧來(lái)講严沥,是由編譯器自動(dòng)管理猜极,無(wú)需我們手工控制;
- 對(duì)于堆來(lái)說(shuō)消玄,釋放工作由程序員控制跟伏,容易產(chǎn)生memory leak。
申請(qǐng)大恤婀稀:
- 棧:棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu)受扳,是一塊連續(xù)的內(nèi)存的區(qū)域
- 堆:是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域兔跌。
分配方式:
- 堆: 都是動(dòng)態(tài)分配的 勘高,動(dòng)態(tài)分配由alloc函數(shù)進(jìn)行分配 
- 棧: 的動(dòng)態(tài)分配由編譯器進(jìn)行釋放,無(wú)需我們手工實(shí)現(xiàn)

11、kvc和kvo的區(qū)別华望?

kvc:鍵值編碼蕊蝗,是一種間接訪問(wèn)對(duì)象的屬性,使用字符串來(lái)標(biāo)示屬性
kvo:鍵值觀察機(jī)制赖舟,提供了觀察某一屬性變化的方法

12蓬戚、線程和進(jìn)程的區(qū)別?

·主要不同的是操作系統(tǒng)資源管理方式
·線程是一個(gè)進(jìn)程中不同的執(zhí)行路徑建蹄,線程有自己的堆碌更、局部變量
·進(jìn)程有獨(dú)立的地址空間,一個(gè)線程死掉洞慎,整個(gè)進(jìn)程就會(huì)死掉

13、

類別的作用嘿棘?
有時(shí)我們需要在一個(gè)已經(jīng)定義好的類中增加一些方法劲腿,
而不想去重寫該類∧衩睿可以使用類別對(duì)該類擴(kuò)充新的方法焦人。
*注意:類別只能擴(kuò)充方法,而不能擴(kuò)充成員變量重父。

代理的作用
委托代理(delegate)花椭,目的是改變和傳遞控制鏈
顧名思義,把某個(gè)對(duì)象要做的事情委托給別的對(duì)象去做房午。
那么別的對(duì)象就是這個(gè)對(duì)象的代理矿辽,代替它來(lái)打理要做
的事。反映到程序中郭厌,首先要明確一個(gè)對(duì)象的委托方是
哪個(gè)對(duì)象袋倔,委托所做的內(nèi)容是什么。
委托機(jī)制是一種設(shè)計(jì)模式折柠。

多態(tài):子類的指針可以賦值給父類 或者  父類引用指向子類對(duì)象

14.鏈表和數(shù)組的區(qū)別在哪里?

二者都屬于一種數(shù)據(jù)結(jié)構(gòu)

- 從邏輯結(jié)構(gòu)來(lái)看
數(shù)組必須事先定義固定的長(zhǎng)度(元素個(gè)數(shù))宾娜,不能適應(yīng)數(shù)據(jù)動(dòng)態(tài)地增減的
情況。當(dāng)數(shù)據(jù)增加時(shí)前塔,可能超出原先定義的元素個(gè)數(shù)承冰;當(dāng)數(shù)據(jù)減少時(shí),造
成內(nèi)存浪費(fèi)巷懈;數(shù)組可以根據(jù)下標(biāo)直接存取该抒。
鏈表動(dòng)態(tài)地進(jìn)行存儲(chǔ)分配,可以適應(yīng)數(shù)據(jù)動(dòng)態(tài)地增減的情況凑保,且可以方便
地插入、刪除數(shù)據(jù)項(xiàng)。(數(shù)組中插入、刪除數(shù)據(jù)項(xiàng)時(shí)笨忌,需要移動(dòng)其它數(shù)據(jù)
項(xiàng)便脊,非常繁瑣)鏈表必須根據(jù)next指針找到下一個(gè)元素

- 從內(nèi)存存儲(chǔ)來(lái)看
(靜態(tài))數(shù)組從棧中分配空間, 對(duì)于程序員方便快速,但是自由度小
鏈表從堆中分配空間, 自由度大但是申請(qǐng)管理比較麻煩
從上面的比較可以看出朝群,如果需要快速訪問(wèn)數(shù)據(jù)岸更,很少或不插入和刪除元
素膊升,就應(yīng)該用數(shù)組;相反廓译, 如果需要經(jīng)常插入和刪除元素就需要用鏈表
數(shù)據(jù)結(jié)構(gòu)了非区。

15、線程與進(jìn)程的區(qū)別和聯(lián)系?

進(jìn)程和線程都是由操作系統(tǒng)所體會(huì)的程序運(yùn)行的基本單元久橙,系統(tǒng)利用該基本單元實(shí)現(xiàn)系統(tǒng)對(duì)應(yīng)用的并發(fā)性歹垫。

進(jìn)程和線程的主要差別在于它們是不同的操作系統(tǒng)資源管理方式排惨。

進(jìn)程有獨(dú)立的地址空間,一個(gè)進(jìn)程崩潰后鹿驼,在保護(hù)模式下不會(huì)對(duì)其它進(jìn)程產(chǎn)生影響辕宏,而線程只是一個(gè)進(jìn)程
中的不同執(zhí)行路徑。

線程有自己的堆棧和局部變量凄鼻,但線程之間沒(méi)有單獨(dú)的地址空間,一個(gè)線程死掉就等于整個(gè)進(jìn)程死掉闰非,所以
多進(jìn)程的程序要比多線程的程序健壯峭范,但在進(jìn)程切換時(shí)纱控,耗費(fèi)資源較大,效率要差一些舶掖。但對(duì)于一些要求同
時(shí)進(jìn)行并且又要共享某些變量的并發(fā)操作唾那,只能用線程闹获,不能用進(jìn)程河哑。

16、目標(biāo)-動(dòng)作機(jī)制

答:目標(biāo)是動(dòng)作消息的接收者沙庐。一個(gè)控件佳吞,或者更為常見的是它的單元底扳,
以插座變量的形式保有其動(dòng)作消息的目標(biāo)。

動(dòng)作是控件發(fā)送給目標(biāo)的消息鹊汛,或者從目標(biāo)的角度看阱冶,它是目標(biāo)為了響應(yīng)
動(dòng)作而實(shí)現(xiàn)的方法木蹬。程序需要某些機(jī)制來(lái)進(jìn)行事件和指令的翻譯。這個(gè)機(jī)
制就是目標(biāo)-動(dòng)作機(jī)制尘颓。

17、 cocoa touch框架

這些框架包括:
Core Animation
通過(guò)Core Animation饺汹,您就可以通過(guò)一個(gè)基于組合獨(dú)立圖層的簡(jiǎn)單的編程模型來(lái)創(chuàng)建豐富的用戶體驗(yàn)兜辞。

Core Audio
Core Audio是播放夸溶,處理和錄制音頻的專業(yè)技術(shù)缝裁,能夠輕松為您的應(yīng)用程序添加強(qiáng)大的音頻功能。

Core Data提供了一個(gè)面向?qū)ο蟮臄?shù)據(jù)管理解決方案韩脑,它易于使用和理解粹污,甚至可處理任何應(yīng)用或大或小的數(shù)據(jù)模型壮吩。
功能列表:框架分類
   下面是 Cocoa Touch 中一小部分可用的框架:
     音頻和視頻
       CoreAudio
       OpenAL
       MediaLibrary
       AVFoundation

     數(shù)據(jù)管理
       Core Data
       SQLite

     圖形和動(dòng)畫
       CoreAnimation
       OpenGL ES
       Quartz 2D

      網(wǎng)絡(luò)
        Bonjour
        WebKit
        BSDSockets

      用戶應(yīng)用
        AddressBook
        CoreLocation
        MapKit
        StoreKit

18、自動(dòng)釋放池是什么,如何工作觉啊?

當(dāng)您向一個(gè)對(duì)象發(fā)送一個(gè)autorelease消息時(shí)杠人,Cocoa就會(huì)將該對(duì)象的
一個(gè)引用放入到最新的自動(dòng)釋放池缀程。它仍然是個(gè)正當(dāng)?shù)膶?duì)象,因此自動(dòng)釋
放池定義的作用域內(nèi)的其它對(duì)象可以向它發(fā)送消息滤奈。當(dāng)程序執(zhí)行到作用域
結(jié)束的位置時(shí)蜒程,自動(dòng)釋放池就會(huì)被釋放,池中的所有對(duì)象也就被釋放忌锯。


1)ojc-c 是通過(guò)一種"referring counting"(引用計(jì)數(shù))的方式來(lái)管理內(nèi)存的, 
對(duì)象在開始分配內(nèi)存(alloc)的時(shí)候引用計(jì)數(shù)為一,以后每當(dāng)碰到有
copy,retain的時(shí)候引用計(jì)數(shù)都會(huì)加一, 每當(dāng)碰到release和autorelease的時(shí)
候引用計(jì)數(shù)就會(huì)減一,如果此對(duì)象的計(jì)數(shù)變?yōu)榱?, 就會(huì)被系統(tǒng)銷毀.


2) NSAutoreleasePool就是用來(lái)做引用計(jì)數(shù)的管理工作的,這個(gè)東西一般
不用你管的.

3)autorelease和release沒(méi)什么區(qū)別,只是引用計(jì)數(shù)減一的時(shí)機(jī)不同而
已,autorelease會(huì)在對(duì)象的使用真正結(jié)束的時(shí)候才做引用計(jì)數(shù)減一偶垮。

19帝洪、動(dòng)態(tài)綁定

在運(yùn)行時(shí)確定要調(diào)用的方法

動(dòng)態(tài)綁定將調(diào)用方法的確定也推遲到運(yùn)行時(shí)葱峡。在編譯時(shí),方法的調(diào)用并不和代碼綁定在一起蛛芥,只有在消實(shí)發(fā)送
出來(lái)之后军援,才確定被調(diào)用的代碼胸哥。通過(guò)動(dòng)態(tài)類型和動(dòng)態(tài)綁定技術(shù),您的代碼每次執(zhí)行都可以得到不同的結(jié)果。
運(yùn)行時(shí)因子負(fù)責(zé)確定消息的接收者和被調(diào)用的方法蝇庭。運(yùn)行時(shí)的消息分發(fā)機(jī)制為動(dòng)態(tài)綁定提供支持捡硅。當(dāng)您向一
個(gè)動(dòng)態(tài)類型確定了的對(duì)象發(fā)送消息時(shí)壮韭,運(yùn)行環(huán)境系統(tǒng)會(huì)通過(guò)接收者的isa指針定位對(duì)象的類,并以此為起點(diǎn)
確定被調(diào)用的方法琳拨,方法和消息是動(dòng)態(tài)綁定的屯曹。而且,您不必在Objective-C 代碼中做任何工作颜启,就
可以自動(dòng)獲取動(dòng)態(tài)綁定的好處浪讳。您在每次發(fā)送消息時(shí),特別是當(dāng)消息的接收者是動(dòng)態(tài)類型已經(jīng)確定的對(duì)象時(shí)口猜,
動(dòng)態(tài)綁定就會(huì)例行而透明地發(fā)生暮的。

20淌实、TCP長(zhǎng)連接與短連接的區(qū)別

參考博客: TCP長(zhǎng)連接與短連接的區(qū)別

21拆祈、如何解決低內(nèi)存問(wèn)題?

暫時(shí)將沒(méi)有顯示window界面銷毀咙咽,以獲得足夠的內(nèi)存钧敞。

22麸粮、POST請(qǐng)求的數(shù)據(jù)類型有哪些弄诲?

json、xml寂玲、二進(jìn)制梗摇、參數(shù)拼接留美;

23伸刃、請(qǐng)簡(jiǎn)述你理解的面向?qū)ο笏枷?/p>

A先生需要一臺(tái)電腦捧颅,但是A先生對(duì)電腦配置较雕、性能亮蒋、品牌等方方面面的知識(shí)一竅不通。而A先生恰巧有
位經(jīng)營(yíng)電腦方面生意的朋友——C先生贮尖,C先生對(duì)電腦硬件方面很是了解湿硝。A先生告訴C先生所需要的電腦
大概什么需求润努、什么價(jià)位铺浇。C先生就會(huì)提供給A先生其所需的電腦。至于中間篩選丁稀、購(gòu)買倚聚、討價(jià)還價(jià)的
過(guò)程什么的秉沼,A先生完全不用管任何一個(gè)環(huán)節(jié)唬复。只需要付費(fèi)全肮,就能拿到所需的電腦辜腺。

24乍恐、iOS中frame和bounds的區(qū)別茵烈?

frame指的是:該view在父view坐標(biāo)系統(tǒng)中的位置和大小砌些。(參照點(diǎn)是父親的坐標(biāo)系統(tǒng))

bounds指的是:該view在本身坐標(biāo)系統(tǒng)中的位置和大小存璃。(參照點(diǎn)是本身坐標(biāo)系統(tǒng))

參考博客

25纵东、請(qǐng)簡(jiǎn)述你理解的內(nèi)存管理

如果你通過(guò)分配和初始化(比如[[XXXClass alloc] init])的方式來(lái)創(chuàng)建對(duì)象,你就擁有這個(gè)對(duì)象洒扎,
需要負(fù)責(zé)該對(duì)象的釋放逊笆。這個(gè)規(guī)則在使用NSObject的便利方法new時(shí)岂傲,也同樣適用镊掖。

如果你拷貝一個(gè)對(duì)象,
你也擁有拷貝得到的對(duì)象症虑,需要負(fù)責(zé)該對(duì)象的釋放谍憔。

如果你保持一個(gè)對(duì)象主籍,
你就部分擁有這個(gè)對(duì)象千元,需要在以后都不再使用的時(shí)候釋放該對(duì)象。

如果你從其他對(duì)象那里接
收到一個(gè)對(duì)象祟身,則你不擁有該對(duì)象袜硫,也不應(yīng)該釋放它。

26溢谤、如何設(shè)計(jì)一個(gè)緩存類世杀?

在程序中使用緩存可以極大的提高程序的運(yùn)行速度,設(shè)計(jì)一個(gè)簡(jiǎn)單的緩存類并不需要太復(fù)雜的邏輯.

簡(jiǎn)單的只需要3個(gè)接口.

1.存對(duì)象

2.取對(duì)象

3.刪除對(duì)象

讀取對(duì)象
-讀取對(duì)象的時(shí)候先讀內(nèi)存
-內(nèi)存沒(méi)有就讀文件

保存對(duì)象
-保存對(duì)象的時(shí)候前臺(tái)保存到內(nèi)存里
-后臺(tái)存入到文件里
-內(nèi)存空間不足就需要先釋放一塊內(nèi)存
-收到內(nèi)存不足的消息的時(shí)候刪除釋放所有的內(nèi)存

27瞻坝、什么是懶加載杏瞻?

懶加載就是懶漢模式捞挥,只有用到的時(shí)候才回去初始化砌函。也可以理解為延時(shí)加載。

舉個(gè)最簡(jiǎn)單的例子:tableView中圖片的加載顯示垦沉。

一個(gè)延時(shí)加載厕倍,避免內(nèi)存過(guò)高贩疙;一個(gè)異步加載这溅,避免線程阻塞芍躏。```

28降狠、如何進(jìn)行網(wǎng)絡(luò)消息推送?APNS推送(蘋果推送服務(wù))的實(shí)現(xiàn)過(guò)程否纬?APSN和第三方相比有何區(qū)別临燃?
>首先應(yīng)用發(fā)送通知膜廊,系統(tǒng)彈出提示框詢問(wèn)用戶是否允許,當(dāng)用戶允許后向蘋果服務(wù)器(APNS)請(qǐng)求deviceToken蹬跃,并由蘋果服務(wù)器發(fā)送給自己的應(yīng)用蝶缀,自己的應(yīng)用將DeviceToken發(fā)送給自己的服務(wù)器翁都,自己的服務(wù)器想要發(fā)送網(wǎng)絡(luò)推送時(shí)將deviceToken以及想要推送的信息發(fā)送給蘋果服務(wù)器谅猾,蘋果服務(wù)器將信息發(fā)送給應(yīng)用赊瞬。
推送信息內(nèi)容薯蝎,總?cè)萘坎怀^(guò)256個(gè)字節(jié)占锯;
iOSSDK本身提供的APNS服務(wù)器推送消略,它可以直接推送給目標(biāo)用戶并根據(jù)您的方式彈出提示瞎抛。
**優(yōu)點(diǎn):不論應(yīng)用是否開啟,都會(huì)發(fā)送到手機(jī)端晓殊;**
缺點(diǎn):消息推送機(jī)制是蘋果服務(wù)器端控制巫俺,個(gè)別時(shí)候可能會(huì)有延遲肿男,因?yàn)樘O果服務(wù)器也有隊(duì)列來(lái)處理所有的消息請(qǐng)求舶沛;

>第三方推送機(jī)制冠王,普遍使用Socket機(jī)制來(lái)實(shí)現(xiàn),幾乎可以達(dá)到及時(shí)的發(fā)送到目標(biāo)用戶手機(jī)端豪娜,適用于即時(shí)通訊類應(yīng)用瘤载。

>優(yōu)點(diǎn):實(shí)時(shí)的卖擅,取決于心跳包的節(jié)奏惩阶;
>缺點(diǎn):iOS系統(tǒng)的限制断楷,應(yīng)用不能長(zhǎng)時(shí)間的后臺(tái)運(yùn)行冬筒,所以應(yīng)用關(guān)閉的情況下這種推送機(jī)制不可用。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末土榴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子响牛,更是在濱河造成了極大的恐慌玷禽,老刑警劉巖赫段,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異矢赁,居然都是意外死亡瑞佩,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門坯台,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瘫寝,“玉大人蜒蕾,你說(shuō)我怎么就攤上這事』腊ⅲ” “怎么了咪啡?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)暮屡。 經(jīng)常有香客問(wèn)我撤摸,道長(zhǎng),這世上最難降的妖魔是什么褒纲? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任准夷,我火速辦了婚禮,結(jié)果婚禮上莺掠,老公的妹妹穿的比我還像新娘衫嵌。我一直安慰自己,他們只是感情好彻秆,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布楔绞。 她就那樣靜靜地躺著,像睡著了一般唇兑。 火紅的嫁衣襯著肌膚如雪酒朵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天扎附,我揣著相機(jī)與錄音蔫耽,去河邊找鬼。 笑死帕棉,一個(gè)胖子當(dāng)著我的面吹牛针肥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播香伴,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼慰枕,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了即纲?” 一聲冷哼從身側(cè)響起具帮,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后蜂厅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體匪凡,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年掘猿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了病游。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡稠通,死狀恐怖衬衬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情改橘,我是刑警寧澤滋尉,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站飞主,受9級(jí)特大地震影響狮惜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜碌识,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一碾篡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧丸冕,春花似錦耽梅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至佩番,卻和暖如春众旗,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背趟畏。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工贡歧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人赋秀。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓利朵,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親猎莲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绍弟,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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

  • 1、OC中創(chuàng)建線程的方法是什么著洼?如果指定在主線程中執(zhí)行代碼樟遣?如何延時(shí)執(zhí)行代碼而叼。【難度系數(shù)★★】 1)創(chuàng)建線程的方法...
    木旁_G閱讀 1,946評(píng)論 2 16
  • 明天第一次iOS面試,這兩天看了些面試題 ,還是把有些不會(huì)的題目 記錄下來(lái) Let's go 1.self.nam...
    LB_Zhang閱讀 752評(píng)論 1 9
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理豹悬,服務(wù)發(fā)現(xiàn)葵陵,斷路器,智...
    卡卡羅2017閱讀 134,633評(píng)論 18 139
  • iOS面試題整理帶答案: 1.簡(jiǎn)述OC中內(nèi)存管理機(jī)制瞻佛。與retain配對(duì)使用的方法是dealloc還是releas...
    晚照清舟閱讀 189評(píng)論 0 0
  • OC的理解與特性 OC作為一門面向?qū)ο蟮恼Z(yǔ)言脱篙,自然具有面向?qū)ο蟮恼Z(yǔ)言特性:封裝、繼承伤柄、多態(tài)涡尘。它既具有靜態(tài)語(yǔ)言的特性...
    克魯?shù)吕?/span>閱讀 447評(píng)論 0 0