面試題

1、基礎數(shù)據(jù)類型


image.png

image.png

2聋呢、關鍵字


image.png

3苗踪、strong、weak削锰、assign通铲、copy 區(qū)別
1、 strong 修飾符表示指向并持有該對象器贩、引用計數(shù)會+1 (可變數(shù)組\字典)
2颅夺、weak 修飾符表示指向并不持有該對朋截、引用計數(shù)不會+1,weak不可以修飾基本數(shù)據(jù)類型 (多用于避免循環(huán)引用的地方)(Delegate)
3吧黄、assign 主要用于修飾基本數(shù)據(jù)類型部服;(Int等)
4、copy多用于修飾有可變類型的不可變對象上 (不可變數(shù)組\字典)

1拗慨、對于不可變對象來說:retain饲宿、strong、copy三者的作用是一樣的胆描,即當引用的原對象值改變后瘫想,其他引用該對象的屬性值不會受影響,還是保持原來的值昌讲;

2国夜、對于可變對象來說:retain、strong和copy的作用就有區(qū)別了短绸,使用retain车吹、strong修飾的屬性,當引用的原對象值改變后醋闭,其他引用該對象的屬性值會一起跟著變化窄驹,而copy修飾的屬性的值還是保持原樣。copy的作用主要也是體現(xiàn)在這里: 讓屬性值不會隨著原引用對象的值改變而改變证逻;

3乐埠、retain和strong的區(qū)別:作用是一樣的,只是寫法上的區(qū)別囚企。在非arc機制時丈咐,是用retain關鍵字修飾;在arc機制后龙宏,一般都用strong關鍵字來代替retain了

4棵逊、根本原因是:給字符串屬性賦值不可變字符串,retain银酗、strong辆影、copy修飾的可變和不可變字符串屬性都是指針拷貝;
5黍特、給字符串屬性賦值可變字符串蛙讥,retain、strong修飾的可變和不可變字符串屬性是指針拷貝衅澈,而copy修飾的可變和不可變字符串屬性都是內(nèi)容拷貝键菱。
1 深復制:內(nèi)容拷貝,源對象和副本對象指的是兩個不同的對象,源對象引用計數(shù)器不變,副本對象引用計數(shù)器為1, 相當于copy(只有不可變對象創(chuàng)建不可變副本(copy)才是淺復制谬墙,其它的都是深復制)
2 淺復制:指針拷貝,源對象和副本對象指的都是同一個對象,對象引用計數(shù)器+1,相當于retain
結論:


image.png

1今布、 實例對象 類對象 元類對象

2经备、objc_msgSend消息執(zhí)行流程
1)消息發(fā)送(cache緩存查找 ->class_rw_t查找 ->父類查找)
2)動態(tài)方法解析(resolveInstanceMethod方法)
3)消息轉發(fā)(forwardingTargetForSelector方法-> methodSignatureForSelector(方法簽名)-> forwardInvocation )

3、interface 和 implementation
@interface...@end :可以理解為相當于c++中類的變量和方法的聲明

@implementation...@end :可以理解為相當于c++中類的方法的實現(xiàn)

4部默、instancetype說明
instancetype是clang 3.5開始提供的一個關鍵字侵蒙,跟id類似,用于表示某個方法返回的未知類型的Objective-C對象傅蹂。

5纷闺、associatedtype 協(xié)議關聯(lián)類型(協(xié)議泛型)
6、typealias 用來給類型起別名
7份蝴、使用some關鍵字聲明一個不透明類型(只能返回一種類型)

8犁功、designated、convenience婚夫、required
1浸卦、designated(中文含義:指定的) :它指的是我們定義的公開的構造函數(shù);公開的構造函數(shù)至少有一個案糙,也可以有多個限嫌;
2、convenience(中文含義:便利的):我們可以用該關鍵字來擴展(即新增)構造函數(shù)时捌,因此是修飾構造函數(shù)的怒医,但需要注意幾點:
必需在同一個類中使用;
必需調(diào)用一個 designated 構造函數(shù)奢讨,調(diào)用時使用的是 self.init稚叹,而不是 super.init;
子類無法繼承重載被 convenience 修飾的構造方法拿诸;
3入录、required(中文含義:必要的) :含義很直白,即子類必需要實現(xiàn)父類指定的構造函數(shù)佳镜;

8僚稿、String 16個字節(jié)
少于16個字節(jié) 存放實際字符串值(內(nèi)存)
大于16個字節(jié) 后8個字節(jié)存放真是字符串地址(常量區(qū))常量區(qū)一般放字符串
改變(apped) 開辟堆空間(堆空間)

9、Array 8個字 存放地址值(堆空間)

6蟀伸、分類(category),類擴展(interface)
'分類'(Category)是OC中的特有語法蚀同,它是表示一個指向分類的結構體的指針。原則上它只能增加方法啊掏,不能增加成員(實例)變量(沒有屬性列表)蠢络。
分類可以利用 關聯(lián)對象(AssociatedObject)添加屬性(寫屬性的set get 方法)
f
Category源碼:

Category
Category 是表示一個指向分類的結構體的指針,其定義如下:
typedef struct objc_category *Category;
struct objc_category {
  char *category_name                          OBJC2_UNAVAILABLE; // 分類名
  char *class_name                             OBJC2_UNAVAILABLE; // 分類所屬的類名
  struct objc_method_list *instance_methods    OBJC2_UNAVAILABLE; // 實例方法列表
  struct objc_method_list *class_methods       OBJC2_UNAVAILABLE; // 類方法列表
  struct objc_protocol_list *protocols         OBJC2_UNAVAILABLE; // 分類所實現(xiàn)的協(xié)議列表
}

@interface XXX ()
//私有屬性
//私有方法(如果不實現(xiàn)迟蜜,編譯時會報警,Method definition for 'XXX' not found)
@end

區(qū)別
①類別中原則上只能增加方法(能添加屬性的的原因只是通過runtime解決無setter/getter的問題而已)刹孔;
②類擴展不僅可以增加方法,還可以增加實例變量(或者屬性)娜睛,只是該實例變量默認是@private類型的(
用范圍只能在自身類髓霞,而不是子類或其他地方)卦睹;
③類擴展中聲明的方法沒被實現(xiàn),編譯器會報警方库,但是類別中的方法沒被實現(xiàn)編譯器是不會有任何警告的结序。這是因為類擴展是在編譯階段被添加到類中,而類別是在運行時添加到類中纵潦。
④類擴展不能像類別那樣擁有獨立的實現(xiàn)部分(@implementation部分)徐鹤,也就是說,類擴展所聲明的方法必須依托對應類的實現(xiàn)部分來實現(xiàn)邀层。
⑤定義在 .m 文件中的類擴展方法為私有的返敬,定義在 .h 文件(頭文件)中的類擴展方法為公有的。類擴展是在 .m 文件中聲明私有方法的非常好的方式寥院。

6救赐、isKindOfClass (是否是這種類型 或者這種類型的子類)
isMemberOfClass

10、死鎖
同一個串行隊列只磷,執(zhí)行 添加 同步任務
sync函數(shù) 往當前SERIAL串行隊列添加任務


image.png
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末经磅,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钮追,更是在濱河造成了極大的恐慌预厌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件元媚,死亡現(xiàn)場離奇詭異轧叽,居然都是意外死亡,警方通過查閱死者的電腦和手機刊棕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門炭晒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人甥角,你說我怎么就攤上這事网严。” “怎么了嗤无?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵震束,是天一觀的道長。 經(jīng)常有香客問我当犯,道長垢村,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任嚎卫,我火速辦了婚禮嘉栓,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己侵佃,他們只是感情好麻昼,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著趣钱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胚宦。 梳的紋絲不亂的頭發(fā)上首有,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音枢劝,去河邊找鬼井联。 笑死,一個胖子當著我的面吹牛您旁,可吹牛的內(nèi)容都是我干的烙常。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鹤盒,長吁一口氣:“原來是場噩夢啊……” “哼蚕脏!你這毒婦竟也來了?” 一聲冷哼從身側響起侦锯,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤驼鞭,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尺碰,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挣棕,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年亲桥,在試婚紗的時候發(fā)現(xiàn)自己被綠了洛心。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡题篷,死狀恐怖词身,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情番枚,我是刑警寧澤偿枕,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站户辫,受9級特大地震影響渐夸,放射性物質發(fā)生泄漏。R本人自食惡果不足惜渔欢,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一墓塌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦苫幢、人聲如沸访诱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽触菜。三九已至,卻和暖如春哀峻,著一層夾襖步出監(jiān)牢的瞬間涡相,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工剩蟀, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留催蝗,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓育特,卻偏偏與公主長得像丙号,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子缰冤,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354

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