Basic Information

NSString 一般都是用Copy 來修飾的,這樣是為了防止數(shù)據(jù)被更改,如果用Strong來修飾的話有可能被數(shù)據(jù)更改。當(dāng)原數(shù)據(jù)是NSMutableString 的話,更改了原數(shù)據(jù),由于Strong是淺copy,只是復(fù)制了地址,所以NSString 也會跟著變,如果是用Copy 修飾的話,就不會有這個問題了,因為它是深拷貝。

Block為什么用Copy修飾呢?因為Block默認(rèn)是放棧里面的,為了避免被提前回收資源,所以用Copy來修飾。

UIView 的事件傳遞
1)事件發(fā)生后,系統(tǒng)會將事件加入到UIApplication的隊列里面,UIApplicaiton取出最前面的事件分發(fā)出去。
2)首先把事件發(fā)給窗口的UIWindow,
3)然后UIWindow再分析哪個View適合響應(yīng)事件。觸摸事件的傳遞是從父控件傳遞到子控件。
4)找到對應(yīng)的View之后就用該View的touch事件去處理觸摸事件。

多線程避免資源的搶奪
1)GCD 的話加?xùn)艡诨蛘咝盘栐?br> dispatch_semaphore_wait 等待信號釋放,代碼會停在這; dispatch_semaphore_signal 釋放信號。
2)Operation 加Depand
3)Thread 加lock

designated initializer 聽說過嗎?
的確沒聽說過,但是看過,initwithNic。。。之類的,其實系統(tǒng)還有一個initwithCoder 一個從本地資源加載,第二個從序列化的資源里面加載,反正都是一個類的初始化函數(shù)。

UIView 和 CALayer 的區(qū)別
1)UIView 繼承自UIResponse CALayer 繼承自NSObject
2)UIView 是CALayer 的進一步封裝,UIview負(fù)責(zé)響應(yīng)時間管理,CALayer主要負(fù)責(zé)圖形的繪制。
3)UIview里面有個Calayer屬性,UiView 是CAlayer的代理

Frame Bounds 的區(qū)別:
Frame大小是相對它上一級的,參照物是父親
Bounds 大小是絕對的,從0開始。

Static 關(guān)鍵字的作用是什么
用Static修飾局部變量,作用域是這個類文件,然后一直保存在內(nèi)存里面,直到程序結(jié)束
用Extend可以引用其他類的變量。但是Static修飾的變量,則對這個沒用。

block 里面什么時候需要__weak (typeof)self weakSelf = self, 什么時候不用呢?
這個要看self是不是強引用了這個block如果沒有就不用啊哈哈。。。

IOS 編譯發(fā)生了什么?
1)Clang進行預(yù)處理
2)LLVM編譯匯編.0 文件
3)鏈接起 .o文件和庫,產(chǎn)生.out 文件

Clang的任務(wù):預(yù)處理、詞法分析、語法分析、語義分析、靜態(tài)分析、生成中間代碼。
預(yù)處理:以#開頭的代碼預(yù)處理。包括引入的頭文件和自定義宏。
詞法分析:每一個.m源文件的聲明和定義從string轉(zhuǎn)化為特殊的標(biāo)記流。
語法分析:將標(biāo)記流解析成一顆抽象語法樹( abstract syntax tree-AST)。
靜態(tài)分析:包含類型檢查和其他檢查。
中間代碼生成:生成LLVM代碼。

如果兩個分類都定義一樣的方法,那調(diào)用哪一個呢?
答案:看complie那里顯示哪個優(yōu)先,和import沒關(guān)系

is equal == 區(qū)別

== 比較的是指針
is equal 比較的是內(nèi)容(指針一樣,對;如果類名不一樣/有空,錯;內(nèi)容一致,對)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 7、不使用IB是,下面這樣做有什么問題? 6、請說說Layer和View的關(guān)系,以及你是如何使用它們的。 1.首先...
    AlanGe閱讀 991評論 0 1
  • 1、截取字符串”20 | http://www.baidu.com”中,”|”字符前面和后面的數(shù)據(jù),分別輸出它們 ...
    強子ly閱讀 3,136評論 8 46
  • 一、深復(fù)制和淺復(fù)制的區(qū)別? 1、淺復(fù)制:只是復(fù)制了指向?qū)ο蟮闹羔?,即兩個指針指向同一塊內(nèi)存單元!而不復(fù)制指向?qū)ο蟮?..
    iOS_Alex閱讀 1,531評論 1 27
  • 1.xcode5和xcode7區(qū)別 1.xcode7沒有Frameworks文件夾,xcode7內(nèi)部會自動幫你導(dǎo)入...
    彼岸的黑色曼陀羅閱讀 580評論 0 2
  • 物理內(nèi)存虛擬內(nèi)存的關(guān)系、堆棧、 比如工作環(huán)境,薪資待遇,要不要加班,主要工作內(nèi)容,要用到什么技術(shù),團隊有沒有什么缺...
    nlpjoe閱讀 1,305評論 0 8

友情鏈接更多精彩內(nèi)容