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

《iOS開發(fā)進階》
作者:唐巧

統(tǒng)計分析工具

  • Flurry: 國外軟件炎疆,專門針對移動的做了優(yōu)化奉瘤,統(tǒng)計流量小勾拉,數(shù)據(jù)安全性高

  • 友盟:國內(nèi)軟件,對國內(nèi)開發(fā)者比價友善〉廖拢現(xiàn)已被阿里收購藕赞,當(dāng)業(yè)務(wù)涉及到與阿里沖突時,統(tǒng)計數(shù)據(jù)會有潛在的安全性問題卖局。這也是京東不支持使用支付寶的原因斧蜕。

  • App Annie : 一款專門為開發(fā)者提供,針對App store 的統(tǒng)計分析工具吼驶,可以統(tǒng)計下載量惩激、排名變化店煞、銷售收入情況及用戶評價等。

  • App Figures: 和App Annie 類似的統(tǒng)計分析工具风钻。

崩潰日志記錄工具

Crashlytics: 國外軟件顷蟀,信息收集能力強,使用免費骡技,安全鸣个。

Xcode 插件管理工具:Alcatraz

可以集成到 Xcode 管理 插件、模板布朦、及顏色配置工具囤萤。
安裝方法如下圖:


IMG_1320.JPG

常用的Xcode 插件

  • KSImageNamed: 自動匹配圖片資源名

  • XVim:一個Xcode 的vim 編輯模式插件

  • FuzzyAutocompletePlugin:代碼自動補全插件,Xcode 7.3以上的版本現(xiàn)都已支持是趴。

  • XToDo : 一個查找項目中所有帶有 TODO, FIXME, !!! 等的標記注釋涛舍。

  • BBUDebuggerTuchAway:一個當(dāng)結(jié)束調(diào)試后,自動隱藏調(diào)試窗口的小插件唆途。

  • SCXcodeSwithExpander : 能迅速在switch 語句中填補所有可能的case:的插件富雅。

  • deriveddata-exterminator: 一款可以在xcode 菜單清除xcode 緩存的插件,解決一下奇怪的編譯錯誤信息肛搬。

  • VVDocumenter : 一款快速文檔注釋插件没佑,Xcode 8 現(xiàn)已集成,使用 cmd + option + /
    鍵即可添加温赔。

  • ClangFormat : 一個自動調(diào)整代碼風(fēng)格的工具蛤奢。

  • ColorSense : 一個使用UIColor 創(chuàng)建顏色時,能實時預(yù)覽當(dāng)前顏色

  • XcodeBoost : 包含多個輔助修改代碼的小功能陶贼,比如:

    • 可以將.m 文件中方法的定義暴露到.h文件中

    • 可以將一個源文件中直接輸入正則表達式查找

    • 可以復(fù)制粘貼代碼時不啟用Xcode的自動縮進功能啤贩。

  • ImageOptim : 一款圖片壓縮工具,比Xcode 自帶的pngcrush 壓縮工具的壓縮比率要高骇窍。需要給ipa 包瘦身時可以采用此軟件瓜晤。

  • 蒲公英: 一款應(yīng)用App的內(nèi)測分發(fā)工具,國內(nèi)軟件腹纳,使用比較方便

  • xctool : 一個Facebook開源的 iOS 編譯和測試工具痢掠。純命令行工具

  • apledoc : 一款從源代碼中抽取文檔的工具。

內(nèi)存管理

  • weak 弱引用修飾的對象嘲恍,雖然持有對象足画,但是引用計數(shù)不會增加,所以可以避免循環(huán)引用佃牛。

  • 為了兼容非ARC的三方庫淹辞,可以在compile sources 中為對應(yīng)的.m 文件增加編譯參數(shù) -fno-objc-arc
    來允許對部分文件關(guān)閉ARC。

開發(fā)技巧

  • UILabel 顯示模糊:UIlabel 的frame 的origin 值如果有小數(shù)就會參數(shù)此問題俘侠,修改為整數(shù)后即可解決象缀。
  • NSJSONSerialization 比 NSKeyedArchiver 做數(shù)據(jù)持久化更方便快捷蔬将,性能更好
  • UIView 添加動畫效果方法是類方法,所以當(dāng)中的block 絕不會產(chǎn)生循環(huán)引用央星。
  • Xcode 快捷鍵:
    • cmd + shift + o : 快速查找工程中的類和方法

    • ESC :調(diào)出代碼補全窗口

注意:
js 文件被拖到工程后霞怀,是在編譯列表中,而不是在資源列表中莉给,需要手動的調(diào)整其位置毙石,否則不能打包到ipa 文件中,解決方法如下:
由于js文件不需要編譯颓遏,需要將js文件從Compile Source編譯列表中移動到 copy Bundle Resources中徐矩。

  • 清除DerivedData : 當(dāng)xcode 緩存異常,莫名出現(xiàn)編譯錯誤時叁幢,可以嘗試清除這里的緩存數(shù)據(jù) ~/Library/Developer/Xcode/DerivedData

  • 為工程增加 Daily Build 腳本

  • 學(xué)習(xí)一門腳本語言(js滤灯、Python),可以提高開發(fā)效率曼玩,自動化批處理一些繁雜重復(fù)性強的事情

  • 代碼片段用戶內(nèi)容替換命令:<#輸入被替換的內(nèi)容#>

Block 對象模型

block 內(nèi)部數(shù)據(jù)結(jié)構(gòu)定義:

IMG_1323.JPG

解釋

  1. isa 指針力喷,所有對象都有該指針,用于實現(xiàn)對象相關(guān)的功能
  2. flags 演训, 用于按bit 位表示一下block的附加信息
  3. reserved ,保留變量
  4. invoke 贝咙,函數(shù)指針样悟,指向具體的block實現(xiàn)的函數(shù)調(diào)用地址
  5. descriptor,表示該block的附加描述信息
  6. variables 庭猩,capture(捕捉)過來的變量窟她,block能夠訪問他外部的局部變量,就是因為將這些變量(變量的地址)復(fù)制到了結(jié)構(gòu)體

OC 中的3各種Block 類型

  • _NSConcreteGlobalBlock蔼水,全局的靜態(tài)block震糖,不會訪問任何外部變量。
  • _NSConcreteStackBlock趴腋,保存在棧中的block吊说,當(dāng)函數(shù)返回時會被銷毀。
  • _NSConcreteMallocBlock优炬,保存在堆中的block颁井,當(dāng)引用技數(shù)為0時銷毀。

Block 對外部變量的復(fù)制

  • 對于block外的變量引用:block默認是將其復(fù)制到其數(shù)據(jù)結(jié)構(gòu)中來實現(xiàn)訪問的蠢护。如果這個對象是一個引用類型雅宾,則block 會將其引用計數(shù)加1

  • 對于__block 修飾的外部變量引用:block 是復(fù)制其引用地址來實現(xiàn)訪問的。

圖示:


IMG_1324.JPG
  • 在ARC中block 只有 NSConcreteGlobalBlock葵硕、NSConcreteMallocBlock眉抬,這2中類型存在贯吓,因為ARC 機制已經(jīng)能很好的管理對象的生命周期,所以這樣的block 類型對于系統(tǒng)來說方便管理蜀变。

其他

**適合UIWindow 來實現(xiàn)的功能: **

  • 手勢解鎖匹颤,密碼輸入界面
  • 應(yīng)用的啟動介紹頁
  • 應(yīng)用內(nèi)的通知提醒顯示
  • 應(yīng)用內(nèi)的彈框廣告

App 用戶登陸密碼安全傳輸策略:

事先生成一對用于加密的公私鑰,客戶端在登陸時胧后,使用公鑰將用戶的密碼加密后俊犯,將密文傳輸?shù)椒?wù)器。服務(wù)器使用私鑰將密碼解密贤惯,然后加鹽之后再多次求MD5洼专,之后再和服務(wù)器原來存儲的用相同方法處理過的密碼匹配,如果一致孵构,則登陸成功屁商。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市颈墅,隨后出現(xiàn)的幾起案子蜡镶,更是在濱河造成了極大的恐慌,老刑警劉巖恤筛,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件官还,死亡現(xiàn)場離奇詭異,居然都是意外死亡毒坛,警方通過查閱死者的電腦和手機望伦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來煎殷,“玉大人屯伞,你說我怎么就攤上這事『乐保” “怎么了劣摇?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長弓乙。 經(jīng)常有香客問我末融,道長,這世上最難降的妖魔是什么唆貌? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任滑潘,我火速辦了婚禮,結(jié)果婚禮上锨咙,老公的妹妹穿的比我還像新娘语卤。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布粹舵。 她就那樣靜靜地躺著钮孵,像睡著了一般。 火紅的嫁衣襯著肌膚如雪眼滤。 梳的紋絲不亂的頭發(fā)上巴席,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音诅需,去河邊找鬼漾唉。 笑死,一個胖子當(dāng)著我的面吹牛堰塌,可吹牛的內(nèi)容都是我干的赵刑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼场刑,長吁一口氣:“原來是場噩夢啊……” “哼般此!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起牵现,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤铐懊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞎疼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體科乎,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年贼急,在試婚紗的時候發(fā)現(xiàn)自己被綠了喜喂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡竿裂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出照弥,到底是詐尸還是另有隱情腻异,我是刑警寧澤,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布这揣,位于F島的核電站悔常,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏给赞。R本人自食惡果不足惜机打,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望片迅。 院中可真熱鬧残邀,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至空免,卻和暖如春空另,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蹋砚。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工扼菠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坝咐。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓循榆,卻偏偏與公主長得像,于是被迫代替她去往敵國和親畅厢。 傳聞我的和親對象是個殘疾皇子冯痢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,573評論 2 359

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