第一次嘗試用MVVM寫APP,里面實現了知乎日報官方版的部分功能(有簡單抽屜效果的實現原理),雖然可能實現過程中有些邏輯上的錯誤,沒轉場動畫,以后再修改吧!
一直以來自己都是遵循MVC模式,這個應該是蘋果首推的開發架構,按照這個模式開發APP實現功能問題不大,但是存在的問題也非常明顯,后期項目比較大了的話,Controller會便得越來越臃腫。不利于需求的改動和維護、后面入職的小伙伴也會經常看得一頭霧水。
iOS支持很多種鍵盤類型,在不同的使用情境下使用不同的鍵盤類型會大大提高便利性,以下為iOS 9下支持的鍵盤類型:
關于iOS布局自動iPhone6之后就是AutoLayOut,AutoLayOut固然非常好用,不過有時候我們需要在頁面手動進行頁面布局,VFL算是一種選擇,如果對VFL不是很熟悉可以參考 iOS開發-VFL(Visual format language)和Autolayout 。 VFL不復雜,理解起來很容易,實際開發中用的特別熟還好,要是第一次看估計要花點功夫才能搞定。Masonry算是VFL的簡化版,用的人比較多,之前項目中用過一次,對手動寫頁面的開發來說算是福利。
做了一年多的IOS開發,對IOS和Objective-C深層次的了解還十分有限,大多還停留在會用API的級別,這是件挺可悲的事情。想學好一門語言還是需要深層次的了解它,這樣才能在使用的時候得心應手,出現各種怪異的問題時不至于不知所措。廢話少說,進入今天的正題。
最近接了一些任務,為了將來應用更快的熱更新做準備,所以就查了一些文檔。查到了這個工具,在一陣惡心之后,大概略知一二了。其實感覺和之前這篇差不多,但又差別很大。沒有看過的同學可以先看lua in iOS
iOS中常用的持久化存儲方式有好幾種: 偏好設置(NSUserDefaults) plist文件存儲 歸檔 SQLite3 Core Data
UICollectionView 瀑布流的簡單實現
在tableview的cell的多選題的情況下,有互斥的功能,根據RecordTwoLevelModel里面的參數strMutex_id,就是跟這個選項互斥的選項的id,這個bug就是選項之間現在不能互斥。
Runtime 是一個比較底層的C語言的API,可以翻譯為“運行時”。作為使用運行時機制的OC語言的底層,它在程序運行時把OC語言轉換成了runtime的C語言代碼。學習并理解runtime是OC學習歷程中的不可或缺的一大塊兒。
在開發iOS項目時,不可避免的會用到圖標,而為了適配不同分辨率的設備,我們通常會需要@2x,@3x兩套格式的圖片,最明顯的就是底部tabBar的圖標使用。而對于那些有換膚需求的APP來說,還需要多套圖來匹配不同的主題。
其實對于 Autolayout 的資料非常非常的多,博主也是略自皮毛,也上不了大雅之堂。這里只是給大家稍微整理一下,可定也不是很全面,主要是針對 AutoLayout 給這個系列進行稍微的講解一下。其實呢,對于很多人來說 Autolayout 都懂的非常多,我呢,其實也不是很想寫,我也是被人架著刀放在脖子上去寫的。既然大家不想聽,那這篇就到此為止吧。(特么的,你是來騙我們進來的么,要么將要么退票錢:rage:)好吧,既然大家都想稍微聽聽,那就聽老娘,咳咳咳,不好意思,聽本少爺慢慢說來。
Core Animation(核心動畫)是一組功能強大、效果華麗的動畫API,無論在iOS系統或者在你開發的App中,都有大量應用。
RunTime簡稱運行時。OC就是運行時機制,也就是在運行時候的一些機制,其中最主要的是消息機制。
main()函數是整個程序的入口,在程序啟動之前,系統會調用exec()函數。在Unix中exec和system的不同在于,system是用shell來調用程序,相當于fork+exec+waitpid,fork 函數創建子進程后通常都會調用 exec 函數來執行一個新程序;而exec是直接讓你的程序代替原來的程序運行。
網絡抓包是個基礎技能,對于網絡協議的掌握有一定的要求。iOS上實現網絡抓包可以用Charles(針對http和https),tcpdump(快速分析網絡包),和Wireshare。之前寫過一篇介紹 tcpdump抓包的入門文章 ,和tcpdump相比,Wireshark提供豐富的GUI交互,而且能分析所有的網絡協議,關鍵還是免費的,掌握好Wireshark就能應付絕大部分需要分析網絡協議的場景了。
上線的證書需要先在自己的電腦上配置CSR證書
最近項目里有個需求和導航欄的樣式定制有關,深入之后發現之前理解的一些概念有些模糊,剛好趁著這次機會全面整理了一下。
在 iOS 開發中,凡是用到系統時間的,都要考慮一個問題:對時。有些業務是無需對時,或可以以用戶時間為準的,比如動畫用到的時間、一些日程類應用等。
為了防止懸掛指針及內存泄漏,手動內存管理基于一個引用計數(retain count)的概念,所有對象都可以增加或減少一個對象的引用計數,當對象的引用計數大于0,則該對象繼續存在;當該對象的引用計數減少到0,則該對象自動銷毀。NSObject實現了 retain 和 release 方法,用于增加或減少引用計數。