知識(shí)點(diǎn)----持續(xù)整理

祝大家面試不迷茫

一個(gè)整理比較好的面試集

傳送門

iOS幾種多線程的方式

主要有三種:NSThread蒙谓、NSoperationQueue、GCD

GCD線程

 NSLog(@"1");

dispatch_async(dispatch_get_global_queue(0, 0), ^{
    
    NSLog(@"2");

    [self performSelector:@selector(test) withObject:nil afterDelay:10];
    
    NSLog(@"3");
});

NSLog(@"4");

- (void)test
{
    
    NSLog(@"5");
}

/// 執(zhí)行順序12和4無序3
///test方式不執(zhí)行
/// 原因是如果是帶afterDelay的延時(shí)函數(shù),會(huì)在內(nèi)部創(chuàng)建一個(gè) NSTimer械念,然后添加到當(dāng)前線程的RunLoop中抖苦。也就是如果當(dāng)前線程沒有開啟RunLoop迁沫,該方法會(huì)失效诅炉。
dispatch_async(dispatch_get_global_queue(0, 0), ^{
    
    NSLog(@"2");

    [self performSelector:@selector(test) withObject:nil afterDelay:10];
    /// RunLoop一定要在model item之后否則同樣無效
    [[NSRunLoop currentRunLoop] run];
    NSLog(@"3");
});
Global Queue有哪幾種優(yōu)先級(jí)泞辐?
可分為
Default,Low丈秩,High
DISPATCH_QUEUE_PRIORITY_BACKGROUND作何用如迟?用于「I/O Throttle 」蓖柔。

官方文檔:
Items dispatched to the queue run at background priority; the queue is scheduled for execution after all high priority queues have been scheduled and the system runs items on a thread whose priority is set for background status. Such a thread has the lowest priority and any disk I/O is throttled to minimize the impact on the system.

簡(jiǎn)而言之咨演,對(duì)于重度磁盤I/O依賴的后臺(tái)任務(wù)闸昨,如果對(duì)實(shí)時(shí)性要求不高,放到DISPATCH_QUEUE_PRIORITY_BACKGROUND Queue中是個(gè)好習(xí)慣雪标,對(duì)系統(tǒng)更友好零院。

實(shí)際上I/O Throttle還分為好幾種溉跃,有Disk I/O Throttle村刨,Memory I/O Throttle,和Network I/O Throttle撰茎。

copy和mutableCopy的區(qū)別

概念:
There are two kinds of object copying: shallow copies and deep copies. The normal copy is a shallow copy that produces a new collection that shares ownership of the objects with the original. Deep copies create new objects from the originals and add those to the new collection

注釋:
有兩種類型的對(duì)象拷貝嵌牺,淺拷貝和深拷貝。正常的拷貝龄糊,生成一個(gè)新的容器逆粹,但卻是和原來的容器共用內(nèi)部的元素,這叫做淺拷貝炫惩。深拷貝不僅生成新的容器僻弹,還生成了新的內(nèi)部元素。

比較容易混淆的一點(diǎn):
我相信大部分人認(rèn)為copy就是shallow copies
mutableCopy是deep copies他嚷。
這種觀點(diǎn)是錯(cuò)誤,面試時(shí)特別,如果面試你和面試官持有不同意見,可以用官方注釋來說明了蹋绽。

對(duì)于不可變或者可變的容器對(duì)象的mutableCopy或者copy操作都是淺拷貝!!!
如果面試官用NSString來和你討論淺深拷貝的區(qū)別芭毙,那你當(dāng)心下是不是給你挖的坑,就看你靈性了卸耘。

容器類型

  • copy操作返回的必然是一個(gè)不可變對(duì)象退敦,無論源對(duì)象是可變對(duì)象還是不可變對(duì)象。如果源對(duì)象是一個(gè)不可變對(duì)象蚣抗,那么它們(源對(duì)象和新生成的對(duì)象)指向同一個(gè)對(duì)象侈百,如果源對(duì)象是可變對(duì)象,它們指向不同對(duì)象

  • mutableCopy返回的必然是一個(gè)可變對(duì)象翰铡,無論源對(duì)象是可變對(duì)象還是不可變對(duì)象钝域,它們(源對(duì)象和新生成的對(duì)象)仍指向不同地址,是兩個(gè)對(duì)象

  • copy和mutableCopy都生成新對(duì)象

NSString

@property (nonatomic, copy) NSString *string;

NSMutableString *string1 = [[NSMutableString alloc] initWithString:@"222"];
self.string = string1;
[string1 appendString:@"copystring"];
NSLog(@"string:%p+++++copy:%p",self.string,string1);
NSLog(@"string:%@+++++copy:%@",self.string,string1);

打印如下:
2020-03-03 18:19:25.092379+0800 Bindo[13659:2296050] string:0x845b8387868c3717+++++copy:0x60000297bf60
2020-03-03 18:19:25.092589+0800 Bindo[13659:2296050] string:222+++++copy:222copystring

用copy關(guān)鍵字修飾時(shí)是兩個(gè)不同的地址两蟀,修改互相不影響网梢。

@property (nonatomic, strong) NSString *string;
打印如下:
2020-03-03 18:22:30.522420+0800 Bindo[13678:2298117] string:0x600000236f70+++++copy:0x600000236f70
2020-03-03 18:22:30.522672+0800 Bindo[13678:2298117] string:222copystring+++++copy:222copystring
如果用strong關(guān)鍵字修飾時(shí)string和string1的地址一樣,修改會(huì)影響另外一個(gè)對(duì)象赂毯。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末战虏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子党涕,更是在濱河造成了極大的恐慌烦感,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件膛堤,死亡現(xiàn)場(chǎng)離奇詭異手趣,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)肥荔,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門绿渣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人燕耿,你說我怎么就攤上這事中符。” “怎么了誉帅?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵淀散,是天一觀的道長。 經(jīng)常有香客問我蚜锨,道長档插,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任亚再,我火速辦了婚禮郭膛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘氛悬。我一直安慰自己则剃,他們只是感情好凄诞,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著忍级,像睡著了一般帆谍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轴咱,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天汛蝙,我揣著相機(jī)與錄音,去河邊找鬼朴肺。 笑死窖剑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的戈稿。 我是一名探鬼主播西土,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼鞍盗!你這毒婦竟也來了需了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤般甲,失蹤者是張志新(化名)和其女友劉穎肋乍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敷存,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡墓造,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了锚烦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片觅闽。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涮俄,靈堂內(nèi)的尸體忽然破棺而出蛉拙,到底是詐尸還是另有隱情,我是刑警寧澤禽拔,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布刘离,位于F島的核電站室叉,受9級(jí)特大地震影響睹栖,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜茧痕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一野来、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧踪旷,春花似錦曼氛、人聲如沸豁辉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徽级。三九已至,卻和暖如春聊浅,著一層夾襖步出監(jiān)牢的瞬間餐抢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工低匙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留旷痕,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓顽冶,卻偏偏與公主長得像欺抗,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子强重,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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