Basic Information

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

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

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

多線程避免資源的搶奪
1)GCD 的話加柵欄或者信號源
dispatch_semaphore_wait 等待信號釋放,代碼會停在這; dispatch_semaphore_signal 釋放信號。
2)Operation 加Depand
3)Thread 加lock

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

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

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

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

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

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

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

如果兩個分類都定義一樣的方法,那調用哪一個呢?
答案:看complie那里顯示哪個優先,和import沒關系

is equal == 區別

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

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