原创 Objective-C之run loop詳解

runloop是事件接收和分發機制的一個實現。Runloops是線程的基礎架構部分。一個runloop就是一個事件處理循環,用來不停的調配工作以及處理輸入事件。使用run loop的目的是使你的線程在有工作的時候工作,沒有的時候休眠。Run

原创 Cocoa與Cocoa Touch區別之分

Cocoa與Cocoa Touch 區別之分是要介紹的內容,他們共同點就是二者都包含Objective-C運行時和兩個核心框架:        Cocoa包含Foundation和ApppKit框架,可用於開發Mac OS X系統的應用程序

原创 堆和棧的區別 -- 本次存貯哪幾種方式

棧區(stack) --由編譯器自動分配釋放,存放函數的參數值,局部變量的值。堆區 (heap) ---一般有程序員分配釋放。全局區(靜態區)(static) --全局變量和靜態變量,程序結束後由系統釋放。文字常量區 -- 常量字符串存放在

原创 NSNotification、delegate和KVO的區別

1.效率肯定是delegate比nsnotification高。 2. delegate方法比notification更加直接,最典型的特徵是,delegate方法往往需要關注返回值, 也就是delegate方法的結果。比如-window

原创 KVC 與 KVO 理解

KVC 與 KVO 是 Objective C 的關鍵概念,個人認爲必須理解的東西,下面是實例講解。Key-Value Coding (KVC)KVC,即是指 NSKeyValueCoding,一個非正式的 Protocol,提供一種機制來

原创 Runtime of Objective-C

[0] Outline  --  [1] 版本和平臺  --  [2] 與Runtime System交互  --  [3] 方法的動態決議  --  [4] 消息轉發  --  [5] 類型編碼  --  [6] 屬性聲明[1] 版本和平

原创 我的友情鏈接

劉亞磊Givin的博客老G的小屋duoduo_333的專欄一片楓葉容芳志專欄求不要人肉任海麗(3G/移動開發)CocoaPods安裝和使用教程成功的人是贏在轉折點!pjk1129專欄任慶民悠悠電臺iOS客戶端:幾千個國內外電臺pengyin

原创 MagicalRecord入門教程

與Core Data相關的還有比較有名的MagicalRecord。使用CoreData時會用到許多引用代碼,讓工作變得很複雜,MagicalRecord可以幫你解決這些問題。MagicalRecord的目標是清除CoreData引用的代碼

原创 weakself的一種寫法

前言在不久前看AFNetworking的源碼時候發現了這麼一句:// 不知道這行代碼的使用場景的同學你該去自習看看ARC的注意事項和Block的使用了 // AFNetworking的寫法__weak __typeof(&*self)wea

原创 iOS中assign、copy 、retain等關鍵字的含義

assign: 簡單賦值,不更改索引計數copy: 建立一個索引計數爲1的對象,然後釋放舊對象retain:釋放舊的對象,將舊對象的值賦予輸入對象,再提高輸入對象的索引計數爲1Copy其實是建立了一個相同的對象,而retain不是:比如一個

原创 博客地址搬家

    很早之前就想搭建一個屬於自己的博客 , 始終沒有時間和精力研究, 最近終於在李煜哥的幫助下 , 搭建了屬於一個自己的博客 ..  http://rookie-liu.github.io   這個事基於 github 的庫做服務, 裏

原创 iOS8中使用CoreLocation定位

在iOS8中,蘋果已經強制開發者在請求定位服務時獲得用戶的授權,此外iOS狀態欄中還有指示圖標,提示用戶當前應用是否正在使用定位服務。另外在iOS8中,蘋果進一步改善了定位服務,讓開發者請求定位服務時需要向用戶提供更多的透明。此外,iOS8

原创 深入Objective-C的動態特性

Objective-C具有相當多的動態特性,基本的,也是經常被提到和用到的有動態類型(Dynamic typing),動態綁定(Dynamic binding)和動態加載(Dynamic loading)。這些動態特性都是在Cocoa程序開

原创 知名應用背後的第三方開源項目

知名應用程序的設計和技術一直都是開發者需要學習的同樣這些應用所使用的開源框架也是不可忽視的一部分。此前《iOS第三方開源庫的吐槽和備忘》中作者ibireme列舉了國內多款知名應用所使用的開源框架並對其中一些框架進行了分析同樣國外開發者@iO

原创 iOS中延時執行的幾種方式的比較和彙總

本文列舉了四種延時執行某函數的方法及其一些區別。假如延時1秒時間執行下面的方法。- (void)delayMethod { NSLog(@"execute"); }1.performSelector方法[self performSelect