原创 談談Object-C的內存管理方式及過程?

1、當你使用new,alloc和copy方法創建一個對象時,該對象的保留計數器值爲1,當你不再使用該對象時,你要負責向該對象發送一條release或autorelease消息,這樣,該對象將在使用壽命結束時被銷燬。 2、當你通過任何其他

原创 多線程與block

GCD與Block 使用dispatch_async系列方法,可以以指定的方式執行block GCD編程實例 dispatch_async的完整定義 void dispatch_async( dispatch_queue_t qu

原创 遠程推送詳解

當服務器遠程向APNS推送至一臺離線的設備時,蘋果服務器Qos組件會自動保留自焚最新的通知,等設備上線後,Qos將把推送發送到目標設備上 遠程推送的基本過程 1、客戶端的app需要將用戶的UDID和app的bundleID發送給apn

原创 GCD的一些原理

GCD核心概念 1、將任務添加到隊列,並且制定執行任務的函數、 2、任務使用 block 封裝       任務的 block 沒有參數也沒有返回值 3、執行任務的函數       異步 dispatch_async           

原创 KVO,NSNotification,delegate及block區別?

KVO,NSNotification,delegate及block區別? KVO就是cocoa框架實現的觀察者模式,一般同KVC搭配使用,通過KVO可以監測一個值得變化,比如View的高度變化。是一對多的關係,一個值得變化會通知所有的觀

原创 iOS靜態庫SDK製作(包含支付寶支付、微信支付或其它第三方靜態庫)

前言 以下所涉及的框架和庫只針對iOS而言,不確保在其他平臺也適用。 最近由於公司業務需要,要求封裝一個支付SDK,需要用到微信支付和支付寶,之前做過的Framework沒有依賴其他第三方的庫所以比較好做,這次有所不同;一開始我想把支

原创 mac 系統內存過大解決方案

mac電腦,系統內存佔用了100多G,跟apple售後打電話,建議我格式化系統,怎麼可能格式化系統,重要的文件、重新配置系統很麻煩的 於是 使用了 daisydisk mac磁盤清理工具, 從任意渠道下載即可 這個是需要收費的,可以用以下

原创 block實現原理?

OC是對C語言的擴展,block的實現是基於指針和函數指針。 從計算語言的發展,最早的goto,高級語言的指針,到面嚮對象語言的block,從機器的思維,一步步接近人的思維,以方便開發人員更爲高效、直接的描述出現現實的邏輯(需求) 使

原创 深淺複製和屬性爲copy,strong值得變化問題?

淺複製:只複製指向對象的指針,而不復制引用對象本身。對於淺複製來說,A和A_copy指向的是同一個內存資源,複製的只不過是一個指針,對象本身資源還是隻有一份,那如果我們隊A_copy執行了修改操作,那麼發現A引用的對象同樣被修改了。 深複

原创 iOS面向對象的三大特徵

一、封裝 封裝是對象和類概念的主要特性。它是隱藏內部實現,穩定外部接口,可以看作是“包裝”。封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。 好處:使用更簡單變量更安全可

原创 cocodata有一個版本迭代

//版本疊代需要添加的     if (![_persistentStoreCoordinator addPersistentStoreWithTy

原创 Runtime詳解

runtime簡介 OC中的runtime是一個運行時庫(runtime Libarary),它是一個主要使用C和彙編寫的庫,爲C添加了面向對象的能力並創造了OC。這就是說它在類信息(class information)中被加載,完成

原创 個人總結面試題

調用一個類的靜態方法需不需要release? 靜態方法,就是類方法,不需要,類方法對象放在autorelease中。 點贊 收藏 分享 文章舉報 張衡的smallTe

原创 static作用

(1)函數體內static變量的作用範圍爲該函數體,不同於auto變量,該變量的內存只被分配一次,因此其值在下次調用時仍維持上次的值; (2)在模塊內的static全局變量可以被模塊內所用函數訪問,但不能唄模塊外其它函數訪問; (3)在模

原创 在項目什麼時候選擇使用GCD,什麼時候選擇NSOperation?

項目中使用NSOperation的優點是NSOperation是對線程的高度抽象,在項目中使用它,會使項目的程序結構更好,子類化NSOperation的設計思路,是具有面向對象的優點(複用、封裝),使得實現是多線程支持,而接口簡單,建議在