iOS--面試劃重點(diǎn)了

一窘面、關(guān)于@property先思考一下幾個(gè)問(wèn)題

delegate 屬性為什么使用 weak ?
xib/storybard連接的對(duì)象為什么使用weak?
字符串  為什么使用copy叽躯?
Block 為什么使用 copy?
1.答:delegate用weak修飾是為了避免循環(huán)引用
2.答:因?yàn)榭丶暗眝iew.superview已經(jīng)strong reference(牽著他
滴小手了)财边,你的viewController 只需要weak reference就好了
3.答:因?yàn)橥ǔ6际鞘褂胏opy的方式。雖然使用strong也沒(méi)有沒(méi)有
問(wèn)題点骑,但是事實(shí)上在開(kāi)發(fā)中都會(huì)使用copy酣难。為什么這么做谍夭?因?yàn)閷?duì)
于字符串,我們希望是一次內(nèi)容的拷貝憨募,外部修改也不會(huì)影響我們
的原來(lái)的值紧索,而且NSString類(lèi)遵守了NSCopying, 
NSMutableCopying, NSSecureCoding協(xié)議。
4.答:block一開(kāi)始是放在棧上的馋嗜,只有copy后才會(huì)放到堆上

@Property是聲明屬性的語(yǔ)法齐板,它可以快速方便的為實(shí)例變量創(chuàng)建存取器吵瞻,并允許我們通過(guò)點(diǎn)語(yǔ)法使用存取器葛菇。

  • 存取器(accessor):指用于獲取和設(shè)置實(shí)例變量的方法。用于獲取實(shí)例變量值的存取器是getter橡羞,用于設(shè)置實(shí)例變量值的存取器是setter眯停。
  • @property等同于在.h文件中聲明實(shí)例變量的get/set方法,@synthesize等同于在.m文件中實(shí)現(xiàn)實(shí)例變量的get/set方法。使用@property和synthesize創(chuàng)建存取器要比手動(dòng)聲明兩個(gè)存取方法(getter和setter)更簡(jiǎn)單卿泽。而且我們?cè)谑褂脤傩詴r(shí)可以使用點(diǎn)語(yǔ)法賦值或取值莺债,語(yǔ)法更簡(jiǎn)單,更符合面向?qū)ο缶幊獭?/li>
  • @property還有一些關(guān)鍵字签夭,它們都是有特殊作用的齐邦,比如上述代碼中的nonatomic,strong第租。我把它們分為三類(lèi)措拇,分別是:原子性,存取器控制慎宾,內(nèi)存管理丐吓。
原子性

1、atomic(默認(rèn)):atomic意為操作是原子的趟据,意味著只有一個(gè)線程訪問(wèn)實(shí)例變量券犁。atomic是線程安全的,至少在當(dāng)前的存取器上是安全的汹碱。
2粘衬、nonatomic:nonatomic跟atomic剛好相反。表示非原子的咳促,可以被多個(gè)線程訪問(wèn)稚新。它的效率比atomic快。但不能保證在多線程環(huán)境下的安全性等缀,在單線程和明確只有一個(gè)線程訪問(wèn)的情況下廣泛使用枷莉。

存取器控制

readwrite(默認(rèn)):readwrite是默認(rèn)值,表示該屬性同時(shí)擁有setter和getter尺迂。
readonly: readonly表示只有g(shù)etter沒(méi)有setter笤妙。

內(nèi)存管理

assign(默認(rèn)):assign用于值類(lèi)型冒掌,如int、float蹲盘、double和NSInteger股毫,CGFloat等表示單純的復(fù)制。還包括不存在所有權(quán)關(guān)系的對(duì)象召衔,比如常見(jiàn)的delegate铃诬。
retain:在setter方法中,需要對(duì)傳入的對(duì)象進(jìn)行引用計(jì)數(shù)加1的操作苍凛。簡(jiǎn)單來(lái)說(shuō)趣席,就是對(duì)傳入的對(duì)象擁有所有權(quán),只要對(duì)該對(duì)象擁有所有權(quán)醇蝴,該對(duì)象就不會(huì)被釋放宣肚。(現(xiàn)在基本不用因?yàn)槎际茿RC機(jī)制)如下代碼所示:

- (void)setName:(NSString *)_name
{ 
   //首先判斷是否與舊對(duì)象一致,如果不一致進(jìn)行賦值悠栓。
   //因?yàn)槿绻且粋€(gè)對(duì)象的話霉涨,進(jìn)行if內(nèi)的代碼會(huì)造成一個(gè)極端的情況:當(dāng)此name的retain為1時(shí),使此次的set操作讓實(shí)例name提前釋放惭适,而達(dá)不到賦值目的笙瑟。 
    if ( name != _name){
           [name release];
           name = [_name retain];
     } 
}

strong:strong是在iOS引入ARC的時(shí)候引入的關(guān)鍵字,是retain的一個(gè)可選的替代癞志。表示實(shí)例變量對(duì)傳入的對(duì)象要有所有權(quán)關(guān)系往枷,即強(qiáng)引用.

weak:在setter方法中,需要對(duì)傳入的對(duì)象不進(jìn)行引用計(jì)數(shù)加1的操作今阳。簡(jiǎn)單來(lái)說(shuō)师溅,就是對(duì)傳入的對(duì)象沒(méi)有所有權(quán),當(dāng)該對(duì)象引用計(jì)數(shù)為0時(shí)盾舌,即該對(duì)象被釋放后墓臭,用weak聲明的實(shí)例變量指向nil,即實(shí)例變量的值為0妖谴。
copy:與strong類(lèi)似窿锉,但區(qū)別在于實(shí)例變量是對(duì)傳入對(duì)象的副本擁有所有權(quán),而非對(duì)象本身膝舅。

二嗡载、RunTime

1、RunTime簡(jiǎn)稱(chēng)運(yùn)行時(shí),就是系統(tǒng)在運(yùn)行的時(shí)候的一些機(jī)制仍稀,其中最主要的是消息機(jī)制洼滚。
2、對(duì)于C語(yǔ)言技潘,函數(shù)的調(diào)用在編譯的時(shí)候會(huì)決定調(diào)用哪個(gè)函數(shù)遥巴,編譯完成之后直接順序執(zhí)行千康,無(wú)任何二義性。
3铲掐、OC的函數(shù)調(diào)用成為消息發(fā)送拾弃。屬于動(dòng)態(tài)調(diào)用過(guò)程。在編譯的時(shí)候并不能決定真正調(diào)用哪個(gè)函數(shù)(事實(shí)證明摆霉,在編 譯階段豪椿,OC可以調(diào)用任何函數(shù),即使這個(gè)函數(shù)并未實(shí)現(xiàn)携栋,只要申明過(guò)就不會(huì)報(bào)錯(cuò)搭盾。而C語(yǔ)言在編譯階段就會(huì)報(bào)錯(cuò))。
4刻两、只有在真正運(yùn)行的時(shí)候才會(huì)根據(jù)函數(shù)的名稱(chēng)找 到對(duì)應(yīng)的函數(shù)來(lái)調(diào)用增蹭。

  • 常用在我們代碼中的具體情況
 * 動(dòng)態(tài)的添加對(duì)象的成員變量和方法
 * 動(dòng)態(tài)交換兩個(gè)方法的實(shí)現(xiàn)
 * 攔截并替換方法
 * 在方法上增加額外功能
 * 實(shí)現(xiàn)NSCoding的自動(dòng)歸檔和解檔
 * 實(shí)現(xiàn)字典轉(zhuǎn)模型的自動(dòng)轉(zhuǎn)換

這塊太大了,可以參考:
Runtime簡(jiǎn)介及應(yīng)用詳解

三磅摹、RunLoop

  • RunLoop是什么呢?我們手機(jī)應(yīng)用是事件驅(qū)動(dòng)的整體架構(gòu)霎奢,假如我們程序一直活著户誓,如果沒(méi)事就閑著,如果有什么事件把它喚醒幕侠,然后它就去分配執(zhí)行事件帝美,直到死了,才退出晤硕。 RunLoop是線程的基礎(chǔ)架構(gòu)部分悼潭,每一個(gè) 線程都有著對(duì)應(yīng)的 run loop 對(duì)象。 它用來(lái)接受循環(huán)中的事件和安排線程工作舞箍,并在沒(méi)有工作時(shí)舰褪,讓線程進(jìn)入睡眠狀態(tài)。
RunLoop的作用
1疏橄、使程序一直運(yùn)行并接受用戶(hù)輸入
2占拍、決定程序在何時(shí)應(yīng)該處理那些事件 (Event)
3、調(diào)用解耦 (Message Queue)---- 主調(diào)方 和 被調(diào)方捎迫,消息隊(duì)列如何安排
4晃酒、節(jié)省CPU時(shí)間 ---- 沒(méi)事的時(shí)候就閑著
RunLoop的 mode 類(lèi)型
NSDefaultRunLoopMode :默認(rèn)狀態(tài)下,不滑動(dòng)窄绒,空閑狀態(tài)贝次,程序啟動(dòng)之后就會(huì)被切到這個(gè)mode 
UITrackingRunLoopMode : 滑動(dòng)的時(shí)候
UIInitializationRunLoopMode:私有的,可以追蹤到的彰导,這個(gè)app啟動(dòng)的時(shí)候是這個(gè)mode,第一個(gè)頁(yè)面加載之后才回到第一個(gè)mode
NSRunLoopCommonModes:默認(rèn)情況包括下第一個(gè)第二個(gè)蛔翅,在這種情況下就是這兩種情況都可以執(zhí)行

詳情可看
孫源@sunnyxx視頻 RunLoop 介紹
YYKit 作者 深入理解RunLoop

四恼布、NSThread、NSOperation搁宾、GCD

  • iOS有三種多線程編程的技術(shù)折汞,這三種編程方式從上到下,抽象度層次是從低到高的盖腿,抽象度越高的使用越簡(jiǎn)單爽待,也是Apple最推薦使用的。
  • NSThread :NSThread 輕量級(jí)最低翩腐,相對(duì)簡(jiǎn)單,但是需要手動(dòng)管理所有的線程活動(dòng)鸟款,如生命周期、線程同步茂卦、睡眠等
  • NSOperation : 自帶線程周期管理何什,操作上可更注重自己邏輯,但是面向?qū)ο蟮某橄箢?lèi),只能實(shí)現(xiàn)它或者使用它定義好的兩個(gè)子類(lèi):
    NSInvocationOperation 和 NSBlockOperation等龙。
  • GCD: 最高效处渣,避開(kāi)并發(fā)陷阱.
    所以一般簡(jiǎn)單而安全的選擇NSOperation實(shí)現(xiàn)多線程即可。而處理大量并發(fā)數(shù)據(jù)蛛砰,又追求性能效率的選擇GCD罐栈。
    詳情參考:
    多線程簡(jiǎn)介
    創(chuàng)建線程
    線程安全
    線程通信
    線程狀態(tài)
    GCD(1)
    GCD(2)

五、Block泥畅、Delegate荠诬、Notification

  • Delegate:“一對(duì)一”,對(duì)同一個(gè)協(xié)議位仁,一個(gè)對(duì)象只能設(shè)置一個(gè)代理delegate柑贞,所以單例對(duì)象就不能用代理。
  • Notification:“一對(duì)多”聂抢,在APP中钧嘶,很多控制器都需要知道一個(gè)事件,應(yīng)該用通知涛浙;但是通知需要及時(shí)刪除康辑。
  • Block:寫(xiě)法更簡(jiǎn)練,block注重結(jié)果的傳輸:比如對(duì)于一個(gè)事件轿亮,只想知道成功或者失敗疮薇,并不需要知道進(jìn)行了多少或者額外的一些信息。block需要注意防止循環(huán)引用我注。
    代理的使用
    通知廣播的使用
    Block的使用(1)
    Block的使用(2)

六按咒、UDP、TCP但骨、Socket励七、HTTP智袭、POST、GET

一張圖看出TCP和UDP的區(qū)別:

TCP與UDP區(qū)別.png
  • TCP為傳輸控制層協(xié)議掠抬,為面向連接吼野、可靠的、點(diǎn)到點(diǎn)的通信两波;
  • UDP為用戶(hù)數(shù)據(jù)報(bào)協(xié)議瞳步,非連接的不可靠的點(diǎn)到多點(diǎn)的通信;
  • TCP側(cè)重可靠傳輸腰奋,UDP側(cè)重快速傳輸单起。
TCP連接的三次握手
 * 第一次握手:客戶(hù)端發(fā)送syn包(syn=j)到服務(wù)器,并進(jìn)入SYN_SEND狀態(tài)劣坊,等待服務(wù)器確認(rèn)嘀倒;
 * 第二次握手:服務(wù)器收到syn包,必須確認(rèn)客戶(hù)的SYN(ack=j+1)局冰,同時(shí)自己也發(fā)送一個(gè)SYN包测蘑,即SYN+ACK包,此時(shí)服務(wù)器進(jìn)入SYN+RECV狀態(tài)锐想;
 * 第三次握手:客戶(hù)端收到服務(wù)器的SYN+ACK包帮寻,向服務(wù)器發(fā)送確認(rèn)包ACK(ack=k+1),此發(fā)送完畢赠摇,客戶(hù)端和服務(wù)器進(jìn)入ESTABLISHED狀態(tài),完成三次狀態(tài)浅蚪。
Scoket連接和HTTP連接的區(qū)別:

HTTP協(xié)議是基于TCP連接的藕帜,是應(yīng)用層協(xié)議,主要解決如何包裝數(shù)據(jù)惜傲。Socket是對(duì)TCP/IP協(xié)議的封裝洽故,Socket本身并不是協(xié)議,而是一個(gè)調(diào)用接口(API)盗誊,通過(guò)Socket时甚,我們才能使用TCP/IP協(xié)議。
HTTP連接:短連接哈踱,客戶(hù)端向服務(wù)器發(fā)送一次請(qǐng)求荒适,服務(wù)器響應(yīng)后連接斷開(kāi),節(jié)省資源开镣。服務(wù)器不能主動(dòng)給客戶(hù)端響應(yīng)(除非采用HTTP長(zhǎng)連接技術(shù))刀诬,iPhone主要使用類(lèi)NSURLConnection。
Socket連接:長(zhǎng)連接邪财,客戶(hù)端跟服務(wù)器端直接使用Socket進(jìn)行連接陕壹,沒(méi)有規(guī)定連接后斷開(kāi)质欲,因此客戶(hù)端和服務(wù)器段保持連接通道,雙方可以主動(dòng)發(fā)送數(shù)據(jù)糠馆,一般多用于游戲.Socket默認(rèn)連接超時(shí)時(shí)間是30秒嘶伟,默認(rèn)大小是8K(理解為一個(gè)數(shù)據(jù)包大小)又碌。

GET和POST的區(qū)別
  • HTTP: 超文本傳輸協(xié)議九昧,是短連接,是客戶(hù)端主動(dòng)發(fā)送請(qǐng)求赠橙,服務(wù)器做出響應(yīng)耽装,服務(wù)器響應(yīng)之后,鏈接斷開(kāi)期揪。HTTP是一個(gè)屬于應(yīng)用層面向?qū)ο蟮膮f(xié)議掉奄,HTTP有兩類(lèi)報(bào)文:請(qǐng)求報(bào)文和響應(yīng)報(bào)文。

  • HTTP請(qǐng)求報(bào)文:一個(gè)HTTP請(qǐng)求報(bào)文由請(qǐng)求行凤薛、請(qǐng)求頭部姓建、空行和請(qǐng)求數(shù)據(jù)4部分組成。

  • HTTP響應(yīng)報(bào)文:由三部分組成:狀態(tài)行缤苫、消息報(bào)頭速兔、響應(yīng)正文。

  • GET:GET請(qǐng)求:參數(shù)在地址后拼接活玲,沒(méi)有請(qǐng)求數(shù)據(jù)涣狗,不安全(因?yàn)樗袇?shù)都拼接在地址后面),不適合傳輸大量數(shù)據(jù)(長(zhǎng)度有限制舒憾,為1024個(gè)字節(jié))镀钓。GET提交、請(qǐng)求的數(shù)據(jù)會(huì)附在URL之后镀迂,即把數(shù)據(jù)放置在HTTP協(xié)議頭中丁溅。

  • POST: POST請(qǐng)求:參數(shù)在請(qǐng)求數(shù)據(jù)區(qū)放著,相對(duì)GET請(qǐng)求更安全探遵,并且數(shù)據(jù)大小沒(méi)有限制窟赏。把提交的數(shù)據(jù)放置在HTTP包的包體中。

 * GET提交的數(shù)據(jù)會(huì)在地址欄顯示出來(lái)箱季,而POST提交涯穷,地址欄不會(huì)改變。
 * GET請(qǐng)求能夠被緩存, POST請(qǐng)求不能被緩存下來(lái)规哪。
 * GET請(qǐng)求會(huì)保存在瀏覽器的瀏覽記錄中求豫,POST請(qǐng)求不會(huì)保存在瀏覽器瀏覽記錄中
 * GET提交時(shí),傳輸數(shù)據(jù)就會(huì)受到URL長(zhǎng)度限制,POST由于不是通過(guò)URL傳值蝠嘉,理論上書(shū)不受限最疆。
 * POST的安全性要比GET的安全性高;

HTTPS:安全超文本傳輸協(xié)議(Secure Hypertext Transfer Protocol)蚤告,它是一個(gè)安全通信通道努酸,基于HTTP開(kāi)發(fā),用于客戶(hù)計(jì)算機(jī)和服務(wù)器之間交換信息杜恰,使用安全套結(jié)字層(SSI)進(jìn)行信息交換获诈,即HTTP的安全版。
詳情可看
阮一峰的網(wǎng)絡(luò)日志

七心褐、簡(jiǎn)述內(nèi)存分區(qū)情況

* 代碼區(qū):存放函數(shù)二進(jìn)制代碼
* 數(shù)據(jù)區(qū):系統(tǒng)運(yùn)行時(shí)申請(qǐng)內(nèi)存并初始化舔涎,系統(tǒng)退出時(shí)由系統(tǒng)釋放,存放全局變量逗爹、靜態(tài)變量亡嫌、常量
* 堆區(qū):通過(guò)malloc等函數(shù)或new等操作符動(dòng)態(tài)申請(qǐng)得到,需程序員手動(dòng)申請(qǐng)和釋放
* 棧區(qū):函數(shù)模塊內(nèi)申請(qǐng)掘而,函數(shù)結(jié)束時(shí)由系統(tǒng)自動(dòng)釋放挟冠,存放局部變量、函數(shù)參數(shù)
ps: 棧和堆的不同
棧的空間由操作系統(tǒng)自動(dòng)分配/釋放袍睡,堆上的空間手動(dòng)分配/釋放知染。
棧空間是有限的斑胜,而堆是很大的自由存儲(chǔ)區(qū)控淡。

C中的malloc函數(shù)分配的內(nèi)存空間是在堆上的,C++中對(duì)應(yīng)的是new操作符。 
程序在編譯期對(duì)變量和函數(shù)分配內(nèi)存都在棧上進(jìn)行,且程序運(yùn)行過(guò)程中函數(shù)調(diào)用時(shí)參數(shù)的傳遞也在棧上止潘。
區(qū)分下面指針的不同
const char *p;
char const *p;
char * const p;
const char * const p;
* const char *p定義了一個(gè)指向不可變的字符串的字符指針逸寓,可以這么看:const char *為類(lèi)型,p是變量覆山。
* char const *p與上一個(gè)是一樣的。
* char * const p定義了一個(gè)指向字符串的指針泥栖,該指針值不可改變簇宽,即不可改變指向。這么看:char *是類(lèi)型吧享,const是修飾變量p魏割,也就是說(shuō)p是一個(gè)常量
* const char * const p定義了一個(gè)指向不可變的字符串的字符指針,且該指針也不可改變指向钢颂。這一個(gè)就很容易看出來(lái)了钞它。兩個(gè)const分別修飾,因此都是不可變的。
面試中當(dāng)然還會(huì)出現(xiàn)其他各式各樣的問(wèn)題遭垛,以上是我整理的尼桶,如有錯(cuò)誤,歡迎指出锯仪。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泵督,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子庶喜,更是在濱河造成了極大的恐慌小腊,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件久窟,死亡現(xiàn)場(chǎng)離奇詭異秩冈,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)斥扛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)入问,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人犹赖,你說(shuō)我怎么就攤上這事队他。” “怎么了峻村?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵麸折,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我粘昨,道長(zhǎng)垢啼,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任张肾,我火速辦了婚禮芭析,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘吞瞪。我一直安慰自己馁启,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布芍秆。 她就那樣靜靜地躺著惯疙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪妖啥。 梳的紋絲不亂的頭發(fā)上霉颠,一...
    開(kāi)封第一講書(shū)人閱讀 51,718評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音荆虱,去河邊找鬼蒿偎。 笑死朽们,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诉位。 我是一名探鬼主播骑脱,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼不从!你這毒婦竟也來(lái)了惜姐?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤椿息,失蹤者是張志新(化名)和其女友劉穎歹袁,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體寝优,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年乏矾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孟抗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钻心。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凄硼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出捷沸,到底是詐尸還是另有隱情摊沉,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布痒给,位于F島的核電站说墨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏苍柏。R本人自食惡果不足惜尼斧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望试吁。 院中可真熱鬧棺棵,春花似錦、人聲如沸熄捍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)治唤。三九已至,卻和暖如春糙申,著一層夾襖步出監(jiān)牢的瞬間宾添,已是汗流浹背船惨。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缕陕,地道東北人粱锐。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像扛邑,于是被迫代替她去往敵國(guó)和親怜浅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355

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

  • 從三月份找實(shí)習(xí)到現(xiàn)在蔬崩,面了一些公司恶座,掛了不少,但最終還是拿到小米沥阳、百度跨琳、阿里、京東桐罕、新浪脉让、CVTE、樂(lè)視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,254評(píng)論 11 349
  • 序言 目前形勢(shì),參加到iOS隊(duì)伍的人是越來(lái)越多薪伏,甚至已經(jīng)供過(guò)于求了滚澜。今年,找過(guò)工作的人可能會(huì)更深刻地體會(huì)到今年的就...
    有夢(mèng)想的老伯伯閱讀 2,998評(píng)論 3 96
  • *面試心聲:其實(shí)這些題本人都沒(méi)怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來(lái)就是把...
    Dove_iOS閱讀 27,150評(píng)論 30 470
  • 序言 目前形勢(shì),參加到iOS隊(duì)伍的人是越來(lái)越多眶掌,甚至已經(jīng)到供過(guò)于求了挡育。今年,找過(guò)工作人可能會(huì)更深刻地體會(huì)到今年的就...
    Jack_lin閱讀 78,383評(píng)論 110 1,945
  • OC的理解與特性O(shè)C作為一門(mén)面向?qū)ο蟮恼Z(yǔ)言朴爬,自然具有面向?qū)ο蟮恼Z(yǔ)言特性:封裝即寒、繼承、多態(tài)召噩。它既具有靜態(tài)語(yǔ)言的特性(...
    LIANMING_LI閱讀 514評(píng)論 0 0