面試小結(jié)

1. 在使用block中,局部變量為什么要用__block修飾才能改變它的值沦寂?,到底發(fā)生了什么腻暮?

可以做一個(gè)測(cè)試毯侦,上代碼 示例1
結(jié)果:


20180316171744967.jpeg

用__block修飾后 示例2


20180316172004512.jpeg

對(duì)比示例1和示例2發(fā)現(xiàn)不加__block叫惊,block內(nèi)部會(huì)重新生成了一變量做修。示例1中生成的變量依然在棧區(qū)抡草,地址減4蔗坯,不加__block之所以不能修改局部變量是因?yàn)榫幾g器加了限制,默認(rèn)不允許修改腿短。而以上說明绘梦,并沒有脫離變量a的作用域,詳見執(zhí)行順序钝诚。因?yàn)閇UIView animateWithDuration:中的block會(huì)立即執(zhí)行榄棵,這也是為何不用weakSelf不會(huì)造成循環(huán)引用的原因。

2. OC的幾種排序疹鳄?時(shí)間復(fù)雜度?二分法查找的實(shí)現(xiàn)垫蛆?

20180316201142791.jpeg

3. assign可以修飾代理嗎杠茬?

修飾代理用weak,誰都知道宁赤。那assign可不可以呢栓票?答案是可以的

對(duì)于assing:也有weak的功效。但是assign是指針賦值佛猛,不對(duì)引用計(jì)數(shù)操作坠狡,使用之后如果沒有置為nil,可能就會(huì)產(chǎn)生野指針逃沿;而weak一旦不進(jìn)行使用后幻锁,永遠(yuǎn)不會(huì)使用了哄尔,就不會(huì)產(chǎn)生野指針柠并。

4. NSTimer在主線程什么時(shí)候會(huì)發(fā)生計(jì)時(shí)不準(zhǔn)?怎么解決臼予? 在子線程使用NSTimer需要注意什么?

如果NSTimer的當(dāng)前線程堵塞葵擎,會(huì)造成計(jì)時(shí)器計(jì)時(shí)不準(zhǔn)半哟。(主線程也不例外)
注意:在子線程使用NSTimer時(shí)候一定要手動(dòng)啟動(dòng)Runloop,否則計(jì)時(shí)器不會(huì)執(zhí)行
要讓timer生效盯串,必須保證該線程的runloop已啟動(dòng)戒良,而且其運(yùn)行的runloopmode也要匹配。

5. tableView的性能優(yōu)化

1.cell復(fù)用
2.cell高度的計(jì)算
3.cell上圖片的渲染糯崎,利用預(yù)渲染加速顯示iOS圖像
4.cell背景不使用透明,不要使用陰影
對(duì)于shadow沃呢,如果圖層是個(gè)簡(jiǎn)單的幾何圖形或者圓角圖形,我們可以通過設(shè)置shadowPath來優(yōu)化性能某抓,能大幅提高性能惰瓜。
5.減少cell上的視圖數(shù)量,重寫drawRect方法
6.減少多余的繪制操作
在實(shí)現(xiàn)drawRect方法的時(shí)候备禀,它的參數(shù)rect就是我們需要繪制的區(qū)域,在rect范圍之外的區(qū)域我們不需要進(jìn)行繪制痹届,否則會(huì)消耗相當(dāng)大的資源。
7.不要給cell動(dòng)態(tài)添加subView
在初始化cell的時(shí)候就將所有需要展示的添加完畢,然后根據(jù)需要來設(shè)置hide屬性顯示和隱藏柴淘。
8.異步化UI秘通,不要阻塞主線程
9.滑動(dòng)時(shí)按需加載對(duì)應(yīng)的內(nèi)容
如果目標(biāo)行與當(dāng)前行相差超過指定行數(shù),只在目標(biāo)滾動(dòng)范圍的前后指定3行加載第股。
10.減少離屏渲染
11.圓角優(yōu)化
使用貝塞爾曲線UIBezierPath和Core Graphics框架畫出一個(gè)圓角
使用CAShapeLayer和UIBezierPath設(shè)置圓角

6 函數(shù)返回一個(gè)對(duì)象時(shí)话原,會(huì)對(duì)對(duì)象autorelease么?為什么繁仁?autorelease是什么時(shí)候釋放的?

會(huì)對(duì)對(duì)象 autorelease稚矿,因?yàn)樾枰谏院筢尫艑?duì)象捻浦,從而給調(diào)用者留下足夠長(zhǎng)的時(shí)間,使其可以在需要時(shí)先保留返回值昧识。此方法可以保證對(duì)象在跨越方法調(diào)用邊界時(shí)一定存活母剥。
除非你有自己的自動(dòng)釋放池,否則這個(gè)時(shí)機(jī)就是當(dāng)前線程,當(dāng)前事件循環(huán)結(jié)束時(shí)习霹,就是 RunLoop 結(jié)束時(shí)(observer -> beforeWaiting)炫隶。

// 情況一:
@autoreleasepool {
    NSObject * obj = [NSObject new];
    [obj autorelease];
    NSLog(@"%d",[obj retainCount]); //1
}

// 情況二:
NSObject * obj = [NSObject new];
[obj autorelease];
[obj autorelease];
NSLog(@"%d",[obj retainCount]); 
NSLog(@"%d",[obj retainCount]);   

// 崩潰

// 情況三:
NSObject * obj;
@autoreleasepool {
        obj = [NSObject new];
        [obj autorelease];
        NSLog(@"%d",[obj retainCount]);  // 1
  }
//crash  出了大括號(hào)就已經(jīng)被銷毀了
NSLog(@"%d",[obj retainCount]);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末煞檩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子熏迹,更是在濱河造成了極大的恐慌凝赛,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件捆昏,死亡現(xiàn)場(chǎng)離奇詭異毙沾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)寇仓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門罩句,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人乳愉,你說我怎么就攤上這事屯远。” “怎么了坡脐?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵房揭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我恬砂,道長(zhǎng)蓬痒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任狱掂,我火速辦了婚禮,結(jié)果婚禮上鸟顺,老公的妹妹穿的比我還像新娘器虾。我一直安慰自己,他們只是感情好曾撤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布挤悉。 她就那樣靜靜地躺著巫湘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诀诊。 梳的紋絲不亂的頭發(fā)上阅嘶,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音抡蛙,去河邊找鬼魂迄。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捣炬,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播婿屹,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼选泻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了页眯?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤傀顾,失蹤者是張志新(化名)和其女友劉穎碌奉,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫉拐,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡魁兼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年咐汞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片几晤。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡植阴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出热芹,到底是詐尸還是另有隱情惨撇,我是刑警寧澤,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布报腔,位于F島的核電站剖淀,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏纵隔。R本人自食惡果不足惜炮姨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一舒岸、第九天 我趴在偏房一處隱蔽的房頂上張望芦圾。 院中可真熱鬧,春花似錦个少、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春姜性,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背弃酌。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國打工儡炼, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人榜贴。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓妹田,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親驶拱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子晶衷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,093評(píng)論 1 32
  • “面試,有一定的技巧在里邊永丝,但是更重要的在于平時(shí)的積累翁狐。” —— 美團(tuán)面試官的一句話露懒。“臨陣磨槍可以讓你找到一...
    春田花花幼兒園閱讀 1,299評(píng)論 4 29
  • 1.設(shè)計(jì)模式是什么蛇耀? 你知道哪些設(shè)計(jì)模式坎弯,并簡(jiǎn)要敘述? 設(shè)計(jì)模式是一種編碼經(jīng)驗(yàn)抠忘,就是用比較成熟的邏輯去處理某一種類...
    司馬DE晴空閱讀 1,283評(píng)論 0 7
  • 設(shè)計(jì)模式是什么崎脉? 你知道哪些設(shè)計(jì)模式,并簡(jiǎn)要敘述囚灼? 設(shè)計(jì)模式是一種編碼經(jīng)驗(yàn),就是用比較成熟的邏輯去處理某一種類型的...
    卑微的戲子閱讀 622評(píng)論 0 1
  • 你以為做到是件容易的事情嗎阅签,我從來沒這樣想過蝎抽,我只是高估了自己,這幾句話锥涕,是矛盾的狭吼。 感恩這個(gè)世界對(duì)我的善意层坠,感恩...
    guoguoguoguoguo閱讀 132評(píng)論 0 0