原创 總結ios開發中,常用的工具CocoaPods

常用的工具之CocoaPods: 我們這裏就簡單介紹安裝和使用: 對於網上一些博客,我也就不想多少了大都是一樣的,而且成功的機率很小。最後找到官方文檔,雖然全是英文,但是全是乾貨,我喜歡。廢話少說,下面就來點乾貨:

原创 用Git進行協同開發

問題場景描述 常常會遇到這樣的協同場景:後臺的同事和前端的同事需要共同開發一個新功能,而他們的代碼相互依賴,所以需要不停地更新各自的代碼進行聯調。 對於這種場景,最簡單的方式就是,這 2 個同事坐到一起,然後把 svn 當作一

原创 更新了OS X EI Capitan cocoaPods出現問題

出現問題,沒有任何思路,百思不得其解。極端方法就是推到重來,按照以前的辦法,試了好幾次,不可以。最終,查閱國外博客,發現解決辦法,再次總結如下: 首先,拆卸掉本地的cocoaPods gem list --local | grep

原创 ios提交代碼到遠程倉庫

ios git 把項目提交到遠程倉庫上 想了好久晚上也實驗了很多但是,git提交到遠程倉庫上很多東西寫的不是很明白,現在在這裏把一些東西細化一下希望對你們有所幫助 首先你想提交項目到git 必須在github 上創建一個自己的項

原创 淺談GCD

GCD是蘋果公司卡開發的一個多核編程的解決方案,gcd和其它的多線程技術方案相比,使用起來更加簡單和方便。 //後臺執行的代碼dispatch_async(dispatch_get_global_queue(0, 0), ^{

原创 實現OC與JS的交互

oc-->js  stringByEvaluatingJavaScriptFromString,其參數是一NSString 字符串內容是js代碼(這又可以是一個js函數、一句js代碼或他們的組合),當js函數有返回值或一句js代碼有值返回

原创 後臺運行

當你按下home鍵的時候,應用最多隻有5秒鐘的時間做一些保存和清理工作,但是使用UIAoolication beginBackgroundTaskWithExpirationHandler方法可以讓應用最多有10分鐘的時間在後臺運

原创 UIWindow

UIWindow是最頂層的界面容器,繼承自UIView ,所以它具有UIView的所有功能,但是,更多的時候UIwindow是作爲UIview的頂層容器存在,每一個ios工程都有一個UIWindow,但是不是唯一,xcode會爲我

原创 ios開發之Category

什麼是Category,有什麼作用 Category模式用於向已經存在的類添加方法從而達到擴展已有類的目的,在很多情形下Category也是比創建子類更優的選擇。新添加的方法同樣也會被被擴展的類的所有子類自動繼承。當知道已有類

原创 堆空間和棧空間

堆空間和棧空間 1.棧區 : 編譯器自動分配釋放,存放函數的參數值(這裏需要注意是參數值)局部變量值等,操作方式類似於數據結構中的棧(先進後出)。 2.堆區 :一般由程序員分配釋放。若程序員不釋放的話,可能由os回收,但是他與

原创 Objective-C Runtime

Objective-C 中給一個對象發送消息會經過以下幾個步驟: 在對象類的 dispatch table 中嘗試找到該消息。如果找到了,跳到相應的函數IMP去執行實現代碼; 如果沒有找到,Runtime 會發送 +resolv

原创 修改block 之外的變量

默認情況下,在程序塊中訪問的外部變量是複製過去的,寫操作不對原變量生效,但是你使用關鍵字 __block 來讓其寫操作生效 __block int myInt=10; void (^MyText)(void)=^{

原创 爲什麼viewdidunload被棄用

前言 我在去年的一篇文章 《iOS5 中 UIViewController 的新方法》 中介紹了 iOS5 引入的關於 ViewController 的新方法。但是現在如果運行該文章中的 Sample 代碼的話,你會發現 Log 中不會

原创 驗證根元類的isa指針指向自己

我們可以使用oc語言提供的與runtime相關的函數,動態的創建一個新的類,並且通過相關的方法獲得isa指針的值,從而瞭解對象的內部結構 解釋一下,代碼中用到的函數: objc_allocateClassPair //動態的創建新的類 c

原创 method swizzle

認知:oc動態運行時,改變成員方法的指針的指向,使其類成員方法的指針指向我們想要的方法的實現 IMP 指針。這裏我們是在 Dispatch Table中操作,其實所謂的方法互換,就是互換了兩個sel指針的指向。 注意點: 在+(void)