iOS基礎(chǔ)知識點100+

  1. object-c 的多繼承
    Objective-C不支持多繼承,由于消息機制名字查找發(fā)生在運行時而非編譯時暮胧,很難解決多個基類可能導(dǎo)致的二義性問題锐借;
    可以繼承多個protocol(接口)问麸,實現(xiàn)協(xié)議方法,來間接實現(xiàn)繼承钞翔;
    我們可以自己實現(xiàn)間接實現(xiàn)多繼承的方法:
    消息轉(zhuǎn)發(fā)严卖、delegate&protocol、category
  2. category 類別
    在不改變代碼的情況下為類添加方法布轿,如果方法與原來方法沖突哮笆,將覆蓋原來方法,因為類別具有更高優(yōu)先級汰扭;
    objc_setAssociatedObject 稠肘、objc_getAssociatedObject可為類添加實例;
    extensions:
    extensions可以認為是一個私有的Category萝毛;
    category和extensions的不同在于后者可以添加屬性项阴,另外后者添加的方法是必須要實現(xiàn)的;
  3. 消息轉(zhuǎn)發(fā)
    首先類別及父類中查找消息
    動態(tài)方法解析:resolveInstanceMethod笆包,有沒有用戶動態(tài)加入的方法
    快速轉(zhuǎn)發(fā)消息:forwardingTargetForSelector环揽,若實現(xiàn)了這個方法,向返回的對象重新發(fā)送消息
    標(biāo)準(zhǔn)消息轉(zhuǎn)發(fā):methodSignatureForSelector:獲得消息對應(yīng)的方法簽名色查,forwardInvocation轉(zhuǎn)發(fā)消息
    PS:
    快速消息轉(zhuǎn)發(fā):簡單薯演、快速、但僅能轉(zhuǎn)發(fā)給一個對象秧了。
    標(biāo)準(zhǔn)消息轉(zhuǎn)發(fā):稍復(fù)雜跨扮、較慢、但轉(zhuǎn)發(fā)操作實現(xiàn)可控验毡,可以實現(xiàn)多對象轉(zhuǎn)發(fā)
  4. delegate & protocol
    將操作預(yù)留給委托對象來實現(xiàn)衡创;
    比如tableview的委托給UITableViewController來處理;
    delegate是一對一的關(guān)系晶通,notifacation是一對多的關(guān)系璃氢;
  5. import #include #class

import = #include + #pragma once

class 是告訴編譯器某個類的聲明,可解決頭文件的互相包含

import<>用來包含系統(tǒng)的頭文件狮辽,#import””用來包含用戶頭文件

  1. readwrite, readonly, assign, retain, copy, strong, weak一也,nonatomic
    readwrite, readonly: setter與getter方法生成的修飾;
    assign 是賦值屬性喉脖,引用對象時椰苟,weak會有安全釋放機制,assign不會
    retain 增加retainCount是在非ARC下使用
    copy 是復(fù)制屬性树叽,注意復(fù)制mutable類與非mutable類的區(qū)別
    nonatomic 是非原子性修飾舆蝴,與atomic決定setter與getter是否需要原子性操作,原子性操作會影響性能,一般在iOS上都使用nonatomic洁仗,注意它只是對setter于getter進行加鎖處理层皱,不對其他方式進行同步處理;
  2. object-c的數(shù)據(jù)類型
    基本數(shù)據(jù)類型:
    NSInteger赠潦、CGFloat
    類數(shù)據(jù)類型:
    NSString
    NSNumber
    NSArray
    NSData
    NSDictionary
  3. id對象
    id代表任意對象叫胖,具體運行時的特性;
    可以執(zhí)行未定義方法,即使未定義:[(id)someObj doAnything]她奥;
  4. iOS 內(nèi)存管理
    手動內(nèi)存管理:非ARC狀態(tài)下臭家,可以了解
    ARC:自動實現(xiàn)內(nèi)存管理,可以細致研究
    NSAutoReleasePool 內(nèi)存池:深入了解原理
  5. iOS性能測試
    Product --> Profile --> Instrument --> Time Profile
  6. 多線程
    創(chuàng)建線程的方法:
    NSThread 不大常用
    GCD 的dispatch 簡便但不容易控制
    NSOperation + NSOperationQueue:自定義operation來實現(xiàn)操作方淤,可進行多方位監(jiān)聽與控制
    PerformSelectorOnMainThread 主線程中執(zhí)行代碼
    performSelector:onThread:withObject:waitUntilDone 在某個線程中延遲執(zhí)行代碼
  7. 設(shè)計模式
    MVC模式:model - view - controller iOS本身設(shè)計使用mvc模式
    代理模式 如delegate
    單例模式,系統(tǒng)單例:UIApplication蹄殃、NSNotificationCenter携茂、NSFileManager、NSUserDefaults诅岩、NSURLCache讳苦、NSHTTPCookieStorage
    觀察者模式 KVO,NSNotificationCenter
  8. 深復(fù)制 & 淺復(fù)制
    淺復(fù)制只是復(fù)制對象指針吩谦,類似與影子
    深復(fù)制復(fù)制所有鸳谜,類似與克隆
  9. KVO & KVC
    KVO使用方法:
    addObserver:forKeyPath:options:context
    observeValueForKeyPath:
    KVO實際是在setter或getter時發(fā)送通知消息;
    KVC調(diào)用對象流程(如[self valueForKey:@”someKey”]):
    首先查找對象是否有someKey或getsomeKey方法式廷,如果沒有咐扭,
    繼續(xù)查找是否有someKey或_someKey實例變量,如果沒有
    會調(diào)用valueForUndefinedKey這個方法滑废,如果這個方法沒實現(xiàn)蝗肪,會拋出NSUndefinedKeyException異常;
  10. 響應(yīng)鏈
    詳細查看touch事件的組成蠕趁,還有事件傳遞的層級關(guān)系
  11. 延遲加載
    一個延時加載薛闪,避免內(nèi)存過高;
    一個異步加載俺陋,避免線程阻塞豁延;
  12. iOS數(shù)據(jù)保存
    通過web服務(wù),保存在服務(wù)器
    通過NSCoder腊状,保存在本地文件中
    通過NSUserDefaults诱咏,保存到系統(tǒng)plist文件中
    通過SQlite或CoreData保存在數(shù)據(jù)庫中
    PS:CoreData是蘋果提供一套數(shù)據(jù)保存框架,其基于SQlite寿酌;
  13. CoreData的了解
    NSManagedObject是NSObject的子類 胰苏,也是coredata的重要組成部分,它是一個通用的類,實現(xiàn)了core data 模型層所需的基本功能,用戶可通過子類化NSManagedObject硕并,建立自己的數(shù)據(jù)模型法焰;
    NSManagedobjectContext對象負責(zé)應(yīng)用和數(shù)據(jù)庫之間的交互;
  14. 謂詞 NSPredicate
    通過定義的過濾條件倔毙,對數(shù)據(jù)進行篩選埃仪;
    如使用 filteredArrayUsingPredicate;
  15. 網(wǎng)絡(luò)訪問
    NSURLConnection
    NSURLSession
  16. object-c的私有
    在Objective‐C中陕赃,所有實例變量默認都是私有的卵蛉,所有實例方法默認都是公有的
  17. Object-c與c/c++混編
    oc代碼中直接使用c是沒問題的
    在mm文件中混用cpp直接使用即可,所以obj-c混cpp不是問題么库,但是cpp中不能使用oc語法傻丝;
  18. cocoa touch框架
    UIKit
    Core Touch:
    Core Animation
    Core Audio
    Core Data
    Core Location
  19. Object-c的優(yōu)缺點
    優(yōu)點:category、動態(tài)識別
    缺點:不支持命名空間诉儒、不支持運算符重載葡缰、所有方法都是函數(shù)調(diào)用,很多編譯時優(yōu)化方法都用不到忱反,性能比較低泛释;
  20. 沙盒結(jié)構(gòu)
    image.png

    Documents: 永久數(shù)據(jù),會被iTunes同步温算;
    Library 除了Library/Caches怜校,其他會被iTunes同步;Preferences目錄下存放偏好數(shù)據(jù)注竿,使用NSUserDefaults寫的設(shè)置數(shù)據(jù)都會保存到該目錄下的一個plist文件中茄茁;
    tmp 各種臨時文件,保存應(yīng)用再次啟動時不需要的文件蔓搞,因為該目錄下的東西隨時有可能被系統(tǒng)清理掉胰丁;
    函數(shù):NSHomeDirectory()乌叶、NSTemporaryDirectory()
    Apple Files And Directories
  21. loadView胡陪、viewDidLoad 恤批、viewDidUnload式散、viewDidAppear的調(diào)用時機
    loadView 在controller的view為nil時調(diào)用域携;
    viewDidLoad 只有在視圖控制器將其視圖載入到內(nèi)存之后才調(diào)用該方法丁存,這是執(zhí)行任何其他初始化操作的入口台夺;
    viewDidUnload 在內(nèi)存在內(nèi)存不足時調(diào)用财松,釋放內(nèi)存梆掸;
    viewWillAppear 視圖將要顯示為頂級視圖時調(diào)用扬卷;
    viewDidAppear 視圖顯示為頂級視圖時調(diào)用;
  22. iOS系統(tǒng)架構(gòu)
    核心操作系統(tǒng)層 theCore OS layer
    核心服務(wù)層theCore Services layer
    媒體層 theMedia layer
    觸摸層 the Cocoa Touch layer
  23. 控件的三種事件響應(yīng)
    基于觸摸的事件酸钦、基于值的事件怪得、基于編輯的事件
  24. 動畫的基本類型
    隱式動畫、顯式動畫;
    Cocoa Touch 提供了 4 種 Core Animation 過渡類型徒恋,分別為:交叉淡化蚕断、推擠、顯示和覆蓋入挣;
  25. UIView 與 CALayer
    設(shè)計用來功能分離亿乳;
    UIView是CALayer的管理器,UIView是畫布径筏,CALayer是圖層葛假;
    CALayer不能響應(yīng)事件;
  26. iOS播放音頻
    SystemSound Services
    AVAudioPlayer 類
    Audio Queue Services
    OpenAL
  27. 手勢方法
    touchesBegan
    touchesMoved
    touchesEnded
    touchesCanceled
  28. Core Foundation 操作socket的方法
    CFNetwork滋恬、CFSocket聊训、BSD Socket
  29. tableview的重用機制
    使用reuseIdentifier方法,會重用之前的單元格恢氯;
    注意每次創(chuàng)建的單元格數(shù)目是顯示的單元格+1魔眨;
  30. APNS的機制
  31. push viewController & present viewController
    push是棧存放;
    present是互相關(guān)系引用酿雪;
  32. load & initialize
    APP啟動后主動調(diào)用每個類的load,可添加新方法或交換方法侄刽;
    initialize是在類第一次使用時調(diào)用指黎,可初始化變量等;
    都是只調(diào)用一次
  1. 一些第三方庫
    fmmpeg 音視頻編解碼框架
    fmdb 對sqllite數(shù)據(jù)庫的封裝州丹,使用戶把主要精力放在sql語句上面

the end

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末醋安,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子墓毒,更是在濱河造成了極大的恐慌吓揪,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件所计,死亡現(xiàn)場離奇詭異柠辞,居然都是意外死亡,警方通過查閱死者的電腦和手機主胧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門叭首,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人踪栋,你說我怎么就攤上這事焙格。” “怎么了夷都?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵眷唉,是天一觀的道長。 經(jīng)常有香客問我,道長冬阳,這世上最難降的妖魔是什么蛤虐? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮摩泪,結(jié)果婚禮上笆焰,老公的妹妹穿的比我還像新娘。我一直安慰自己见坑,他們只是感情好嚷掠,可當(dāng)我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著荞驴,像睡著了一般不皆。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上熊楼,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天霹娄,我揣著相機與錄音,去河邊找鬼鲫骗。 笑死犬耻,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的执泰。 我是一名探鬼主播枕磁,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼术吝!你這毒婦竟也來了计济?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤排苍,失蹤者是張志新(化名)和其女友劉穎沦寂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體淘衙,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡传藏,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了彤守。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漩氨。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖遗增,靈堂內(nèi)的尸體忽然破棺而出叫惊,到底是詐尸還是另有隱情,我是刑警寧澤做修,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布霍狰,位于F島的核電站抡草,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蔗坯。R本人自食惡果不足惜康震,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宾濒。 院中可真熱鬧腿短,春花似錦、人聲如沸绘梦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽卸奉。三九已至钝诚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榄棵,已是汗流浹背凝颇。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留疹鳄,地道東北人拧略。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像瘪弓,于是被迫代替她去往敵國和親辑鲤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,901評論 2 345

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

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,125評論 29 470
  • 1.項目經(jīng)驗 2.基礎(chǔ)問題 3.指南認識 4.解決思路 ios開發(fā)三大塊: 1.Oc基礎(chǔ) 2.CocoaTouch...
    陽光的大男孩兒閱讀 4,969評論 0 13
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理杠茬,服務(wù)發(fā)現(xiàn),斷路器弛随,智...
    卡卡羅2017閱讀 134,601評論 18 139
  • 一對從農(nóng)村來城里打工的姐妹瓢喉,幾經(jīng)周折才被一家禮品公司招聘為業(yè)務(wù)員。 她們沒有固定的客戶舀透,也沒有任何關(guān)系栓票,每天只能提...
    讀書使我快樂的閱讀 144評論 0 1
  • 室友輕語高三離惑芭,相忘有時惱無期坠狡。 夜深輾轉(zhuǎn)回頭憶,未有那年可堪提遂跟。
    以身妄嫌閱讀 171評論 0 0