《iOS開發(fā)進階》讀書筆記

1.理解內(nèi)存管理

  • 除了objective-c之外,微軟的COM喷众、C++11也提供了基于引用計數(shù)的內(nèi)存管理方式
  • 引用計數(shù)的這種管理方式類似于文件系統(tǒng)里邊的硬鏈接
  • 不要向已經(jīng)釋放的對象發(fā)送消息
    • 自己回收對象發(fā)retainCount消息,得到的引用計數(shù)不確定
  • X-code提供的Instruments工具集可以方便的檢測循環(huán)引用紧憾,Product->Profile->Leaks
  • 自動引用計數(shù)是蘋果WWDC2011年大會上提出用于內(nèi)存管理的技術的到千,MacOS上的垃圾回收機制已被廢棄,而是用ARC替代
  • 如果ARC下想用MRC赴穗,在后邊加上-fno-objc-arc
  • 底層的CoreFoundation下憔四,需要手動管理內(nèi)存
  • CFRetain,CFRelease方法

2.掌握GCD

  • iOS4中提出

3.使用UIWindow

  • UIWindow繼承自UIView
  • UIWindow 般眉,windowLevel 有是三個值:Nomal了赵、statusBar、Alert甸赃;分別對應的層級是0柿汛,1000,2000埠对;
  • 使用場景:網(wǎng)易云音樂右上角的音樂络断,支付寶的九宮格密碼,有道云筆記的密碼輸入界面

4.安全性問題

安全的傳輸用戶密碼

  • 公鑰加密密碼->服務器私鑰解密->多次MD5->與數(shù)據(jù)庫中進行對比

防止通訊協(xié)議被破解

  • 對傳輸內(nèi)容采用類似于Protobu的開源交換格式

驗證應用內(nèi)支付的憑證

  • 越獄手機可能出現(xiàn)中間人攻擊技術项玛,偽造支付憑證貌笨,我們需要仔細驗證購買憑證,并且告知用戶在越獄手機上進行支付的風險

本地文件的數(shù)據(jù)安全

  • 原生和前端混編時稍计,應考慮將JS代碼進行加密混淆
  • 本地重要文件要進行加密躁绸,或者保存在keyChain中

源代碼安全

  • 黑客可以分析變異之后的二進制程序文件:反編譯中IDA最為厲害,還有file臣嚣、otool、class-dump剥哑。
  • 應對措施:使用宏來簡單混淆類名硅则,關鍵邏輯使用C實現(xiàn)

5.CoreText

  • CoreText處理文字和字體的底層技術,直接與CoreGraphics(Quartz)打交道
  • CoreText內(nèi)存小株婴,渲染快怎虫,高度可以提前獲取,在后臺線程中運行困介,但是代碼惡心

6.實戰(zhàn)技巧

  • 巧用截屏功能實現(xiàn)側滑返回(iOS7)
  • JS文件默認在編譯列表而不是資源列表中 需要手動處理

7.Objective-C對象模型

isa指針
  • 每一個對象都有一個名為isa的指針大审,指向該對象的類。
  • NSObject就是一個包含isa指針的結構體
  • 每一個類也是對象座哩,擁有isa指針
  • 因為類也是對象徒扶,所以他必須是另外一個類的實例,這個類叫做元類(metaclass)根穷,元類的對象的指針姜骡,指向根元類(root metaclass)
  • NSObject元類的isa指針指向自己
  • 對象在內(nèi)存中的排布可以看成是一個結構體导坟,該結構體在運行時無法給對象增加成員變量,運行時采用的方法的實現(xiàn)機制不同圈澈,并不是改變了對象的內(nèi)存結構
  • 對象的方法定義都保存在類的可變區(qū)域中惫周,說明了為什么Category可以為對象增加成員方法,卻不能增加成員變量
  • KVO的實現(xiàn)康栈,動態(tài)的修改了isa指針的值
MethodSwizzling
  • class_replaceMethod 替換類方法的定義:當需要替換的方法有可能不存在時递递,可以考慮使用這種方法
  • method_exchangeImplementations 交換兩個方法的實現(xiàn):當需要交換兩個方法的實現(xiàn)是,可以使用這個方法
  • method_setImplementation 設置一個方法的實現(xiàn):最簡單的用法啥么,當僅僅需要為一個方法設置其實現(xiàn)方式時使用
  • 實例:唐巧的UIImagePickerController漾狼,iPad橫屏的bug

8.Tagged Pointer 對象

  • 給64位系統(tǒng)帶來了內(nèi)存的節(jié)省和運行效率的提高,Tagger Pointer 通過在其最后一個bit位設置一個特殊的標記饥臂,用于將數(shù)據(jù)直接保存在指針本身中逊躁,因為Tagged Pointer 并不是一個真正的對象,我們在使用是需要注意不要直接訪問其isa變量

9.Block

  • 分為全局block隅熙,棧中的Block稽煤,堆中的Block
  • NSConcteteGlobalBlock、NSConcteteStackBlock囚戚、NSConcreteMallocBlock
  • ARC下只有全局Block和堆Block
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末酵熙,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子驰坊,更是在濱河造成了極大的恐慌匾二,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拳芙,死亡現(xiàn)場離奇詭異察藐,居然都是意外死亡,警方通過查閱死者的電腦和手機舟扎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門分飞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人睹限,你說我怎么就攤上這事譬猫》ソ” “怎么了蛉顽?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵锰悼,是天一觀的道長衔肢。 經(jīng)常有香客問我儿惫,道長午磁,這世上最難降的妖魔是什么砚著? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任蛀蜜,我火速辦了婚禮,結果婚禮上诚亚,老公的妹妹穿的比我還像新娘晕换。我一直安慰自己,他們只是感情好站宗,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布闸准。 她就那樣靜靜地躺著,像睡著了一般梢灭。 火紅的嫁衣襯著肌膚如雪夷家。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天敏释,我揣著相機與錄音库快,去河邊找鬼。 笑死钥顽,一個胖子當著我的面吹牛义屏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蜂大,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼闽铐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了奶浦?” 一聲冷哼從身側響起兄墅,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎澳叉,沒想到半個月后隙咸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡成洗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年五督,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泌枪。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡概荷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碌燕,到底是詐尸還是另有隱情,我是刑警寧澤继薛,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布修壕,位于F島的核電站,受9級特大地震影響遏考,放射性物質發(fā)生泄漏慈鸠。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一灌具、第九天 我趴在偏房一處隱蔽的房頂上張望青团。 院中可真熱鬧譬巫,春花似錦、人聲如沸督笆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娃肿。三九已至咕缎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間料扰,已是汗流浹背凭豪。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晒杈,地道東北人嫂伞。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像拯钻,于是被迫代替她去往敵國和親帖努。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

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

  • 《iOS開發(fā)進階》作者:唐巧 統(tǒng)計分析工具 Flurry: 國外軟件说庭,專門針對移動的做了優(yōu)化然磷,統(tǒng)計流量小,數(shù)據(jù)安全...
    Jerry_WJ閱讀 432評論 1 5
  • 1.Difference between shallow copy and deep copy? 淺復制和深復制的...
    用心在飛閱讀 990評論 0 9
  • 1.OC里用到集合類是什么刊驴? 基本類型為:NSArray姿搜,NSSet以及NSDictionary 可變類型為:NS...
    輕皺眉頭淺憂思閱讀 1,366評論 0 3
  • 明日我的花店將要開張,回到花店一看捆憎,花門的架子沒搭起來舅柜,花籃沒做好,我的打卡尚未開始躲惰。每件事情都是一定要完成致份,而我...
    楚楚云兒閱讀 380評論 0 0
  • 姓名:魏正君《六項精進》第270期感謝2組 公司:綿陽大北農(nóng)農(nóng)牧科技有限公司 【日精進打卡第158天】 【知~學習...
    莫心莫肺閱讀 170評論 0 0