iOS (持續(xù)更新)

1雅潭、#import 跟 #include 有什么區(qū)別久信,@class呢也物,#import<> 跟 #import"" 有什么區(qū)別兴枯?

答:
(1) #import是Objective-C導(dǎo)入頭文件的關(guān)鍵字确虱,#include是C/C++導(dǎo)入頭文件的關(guān)鍵字,使用 #import頭文件會自動只導(dǎo)入一次,不會重復(fù)導(dǎo)入斯够。
(2) @class 告訴編譯器某個類的聲明,當(dāng)執(zhí)行時,才去查看類的實現(xiàn)文件读规,可以解決頭文件的相互包含抓督。
(3) #import<> 用來包含系統(tǒng)的頭文件,#import"" 用來包含用戶頭文件束亏。

2铃在、frame 和 bounds 有什么不同?

答:
frame指的是:該view在父view坐標(biāo)系統(tǒng)中的位置和大小碍遍。(參照點是父view的坐標(biāo)系統(tǒng))
bounds指的是:該view在本身坐標(biāo)系統(tǒng)中的位置和大小定铜。(參照點是本身坐標(biāo)系統(tǒng))

3、屬性關(guān)鍵字 readwrite怕敬,readonly宿稀,assign,retain赖捌,copy祝沸,nonatomic 各是什么作用,在那種情況下用越庇?

答:
1). readwrite 是可讀可寫特性罩锐。需要生成getter方法和setter方法。
2). readonly 是只讀特性卤唉。只會生成getter方法涩惑,不會生成setter方法,不希望屬性在類外改變桑驱。
3). assign 是賦值特性竭恬。setter方法將傳入?yún)?shù)賦值給實例變量;僅設(shè)置變量時,assign用于基本數(shù)據(jù)類型。
4). retain(MRC)/strong(ARC) 表示持有特性熬的。setter方法將傳入?yún)?shù)先保留痊硕,再賦值,傳入?yún)?shù)的retaincount會+1押框。
5). copy 表示拷貝特性岔绸。setter方法將傳入對象復(fù)制一份,需要完全一份新的變量時橡伞。
6). nonatomic 非原子操作盒揉。決定編譯器生成的setter和getter方法是否是原子操作,atomic表示多線程安全兑徘,一般使用nonatomic刚盈,效率高。

4挂脑、怎么用 copy 關(guān)鍵字藕漱?

答:
1). NSString欲侮、NSArray、NSDictionary 等等經(jīng)常使用copy關(guān)鍵字谴分,是因為他們有對應(yīng)的可變類型:NSMutableString、NSMutableArray镀脂、NSMutableDictionary牺蹄;
2). block 也經(jīng)常使用 copy 關(guān)鍵字。
說明:block 使用 copy 是從 MRC 遺留下來的“傳統(tǒng)”,在 MRC 中,方法內(nèi)部的 block 是在棧區(qū)的,使用 copy 可以把它放到堆區(qū).在 ARC 中寫不寫都行:對于 block 使用 copy 還是 strong 效果是一樣的薄翅,但寫上 copy 也無傷大雅沙兰,還能時刻提醒我們:編譯器自動對 block 進行了 copy 操作。如果不寫 copy 翘魄,該類的調(diào)用者有可能會忘記或者根本不知道“編譯器會自動對 block 進行了 copy 操作”鼎天,他們有可能會在調(diào)用之前自行拷貝屬性值。這種操作多余而低效暑竟。

5斋射、什么情況使用 weak 關(guān)鍵字,相比 assign 有什么不同但荤?

答:
1).在 ARC 中,在有可能出現(xiàn)循環(huán)引用的時候,往往要通過讓其中一端使用 weak 來解決,比如: delegate 代理屬性罗岖。
2).自身已經(jīng)對它進行一次強引用,沒有必要再強引用一次,此時也會使用 weak,自定義 IBOutlet 控件屬性一般也使用 weak;當(dāng)然腹躁,也可以使用strong桑包。
IBOutlet連出來的視圖屬性為什么可以被設(shè)置成weak?
因為父控件的subViews數(shù)組已經(jīng)對它有一個強引用。
不同點:
assign 可以用非 OC 對象纺非,而 weak 必須用于 OC 對象哑了。
weak 表明該屬性定義了一種“非擁有關(guān)系”。在屬性所指的對象銷毀時烧颖,屬性值會自動清空(nil)弱左。

6、用@property聲明的 NSString / NSArray / NSDictionary 經(jīng)常使用 copy 關(guān)鍵字炕淮,為什么科贬?如果改用strong關(guān)鍵字,可能造成什么問題鳖悠?

答:
用 @property 聲明 NSString榜掌、NSArray、NSDictionary 經(jīng)常使用 copy 關(guān)鍵字乘综,是因為他們有對應(yīng)的可變類型:NSMutableString憎账、NSMutableArray、NSMutableDictionary卡辰,他們之間可能進行賦值操作(就是把可變的賦值給不可變的)胞皱,為確保對象中的字符串值不會無意間變動邪意,應(yīng)該在設(shè)置新屬性值時拷貝一份。
1)因為父類指針可以指向子類對象,使用 copy 的目的是為了讓本對象的屬性不受外界影響,使用 copy 無論給我傳入是一個可變對象還是不可對象,我本身持有的就是一個不可變的副本反砌。
2)如果我們使用是 strong ,那么這個屬性就有可能指向一個可變對象,如果這個可變對象在外部被修改了,那么會影響該屬性雾鬼。
總結(jié):使用copy的目的是,防止把可變類型的對象賦值給不可變類型的對象時宴树,可變類型對象的值發(fā)送變化會無意間篡改不可變類型對象原來的值策菜。

7、淺拷貝和深拷貝的區(qū)別酒贬?

答:
淺拷貝:只復(fù)制指向?qū)ο蟮闹羔樣趾粡?fù)制引用對象本身。
深拷貝:復(fù)制引用對象本身锭吨。內(nèi)存中存在了兩份獨立對象本身蠢莺,當(dāng)修改A時,A_copy不變零如。

8躏将、什么是 TCP / UDP ?

TCP:傳輸控制協(xié)議。
UDP:用戶數(shù)據(jù)協(xié)議考蕾。

TCP 是面向連接的耸携,建立連接需要經(jīng)歷三次握手,是可靠的傳輸層協(xié)議辕翰。
UDP 是面向無連接的夺衍,數(shù)據(jù)傳輸是不可靠的,它只管發(fā)喜命,不管收不收得到沟沙。
簡單的說,TCP注重數(shù)據(jù)安全壁榕,而UDP數(shù)據(jù)傳輸快點矛紫,但安全性一般。

9牌里、tableView的重用機制颊咬?

答:UITableView 通過重用單元格來達(dá)到節(jié)省內(nèi)存的目的: 通過為每個單元格指定一個重用標(biāo)識符,即指定了單元格的種類,當(dāng)屏幕上的單元格滑出屏幕時牡辽,系統(tǒng)會把這個單元格添加到重用隊列中喳篇,等待被重用,當(dāng)有新單元格從屏幕外滑入屏幕內(nèi)時态辛,從重用隊列中找看有沒有可以重用的單元格麸澜,如果有,就拿過來用奏黑,如果沒有就創(chuàng)建一個來使用炊邦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末编矾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子馁害,更是在濱河造成了極大的恐慌窄俏,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碘菜,死亡現(xiàn)場離奇詭異凹蜈,居然都是意外死亡,警方通過查閱死者的電腦和手機炉媒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門踪区,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昆烁,“玉大人吊骤,你說我怎么就攤上這事【材幔” “怎么了白粉?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長鼠渺。 經(jīng)常有香客問我鸭巴,道長,這世上最難降的妖魔是什么拦盹? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任鹃祖,我火速辦了婚禮,結(jié)果婚禮上普舆,老公的妹妹穿的比我還像新娘恬口。我一直安慰自己,他們只是感情好沼侣,可當(dāng)我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布祖能。 她就那樣靜靜地躺著,像睡著了一般蛾洛。 火紅的嫁衣襯著肌膚如雪养铸。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天轧膘,我揣著相機與錄音钞螟,去河邊找鬼。 笑死谎碍,一個胖子當(dāng)著我的面吹牛筛圆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播椿浓,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼太援,長吁一口氣:“原來是場噩夢啊……” “哼闽晦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起提岔,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤仙蛉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后碱蒙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荠瘪,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年赛惩,在試婚紗的時候發(fā)現(xiàn)自己被綠了哀墓。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡喷兼,死狀恐怖篮绰,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情季惯,我是刑警寧澤吠各,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站勉抓,受9級特大地震影響贾漏,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜藕筋,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一纵散、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧隐圾,春花似錦伍掀、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至叨咖,卻和暖如春瘩例,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背甸各。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工垛贤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人趣倾。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓聘惦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親儒恋。 傳聞我的和親對象是個殘疾皇子善绎,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,612評論 2 350