原创 Objective-C的MRC手動內存管理——引用計數詳解

0x01 對象生命週期 對象的生命週期包括誕生(通過alloc或new方法實現)、生存(接收消息並執行操作)、交友(通過複合以及向方法傳遞參數)以及最終死去(被釋放)。 生命週期結束後,它們所佔用的內存將被回收並被新的對象使用。   0x

原创 @encode編譯器指令和Objective-C類型編碼介紹

0x01 encode編譯器指令 @encode是編譯器指令之一。 @encode返回一個給定的Objective-C 類型編碼(Objective-C Type Encodings)。 這是一種內部表示的字符串,類似於 ANSI C 的

原创 Objective-C中類方法、對象方法介紹及區別

0x01 對象方法 什麼是對象方法? 對象方法是類對象必須進行實例化後纔可以使用的方法,對象方法將消息發送給實例對象。 對象方法以 - 開頭,屬於類的某一個或某幾個實例對象。   對象方法的聲明 對象方法的特徵  對象方法以-開頭,如

原创 深入瞭解Xcode 7——代碼編輯

0x01 默認窗口布局 工具欄:煒鬱程序窗口最頂端,包含了很多工具按鈕; 導航欄:顯示項目文件列表或瀏覽其他內容(符號Symbol、搜索Search、問題Issue、調試Debug、斷點Breakpoint和日誌Logs。可以按住Com

原创 Objective-C的Foundation框架——框架結構簡介

0x01 十分重要的Foundation框架 Foundation框架只是Cocoa的一個部分,並沒有內置在Objective-C語言中,但它卻非常重要。 Cocoa其實是由多個不同框架組成的大框架集合,最常用於桌面端(OS X)應用程序

原创 Objective-C的Foundation框架——集合NSArray

0x01 NSArray   NSArray是一個Cocoa類,用來存儲對象的有序列表。   NSArray可存儲的對象 在NSArray中可以放入任意類型的對象:NSString、Car、Shape、Tire或者其他想要存儲的對象,甚至

原创 Xcode使用入門——創建類別/類擴展/協議文件

要創建類別或類擴展,可以按下Command+N快捷鍵,或者選擇File>New...>File... 在彈出的對話框中選擇“Objective-C File"。 在下面的文件註釋中註明了該選項可以創造一個空的Objective-C文檔,

原创 Objective-C的非正式協議(Informal Protocol)和選擇器(Selector)

0x01 非正式協議 “非正式協議”(Informal Protocol)可以視爲“類別”的別稱,即凡是NSObject或其子類的類別,都是“非正式協議”。   可以從Apple官方的開發者文檔看到: 1、非正式協議中的方法是否實現是可選

原创 iOS開發中的ARC內存管理機制(1)——基礎概念

由於移動設備的內存資源一般比較少,所以垃圾回收機制的操作會對設備的性能造成比較明顯的影響,有可能在執行垃圾回收的時候讓移動設備出現卡頓,這對於使用者來說是很難受的事。 由此蘋果公司提出了ARC方案。   0x01 自動引用計數 自動引用計

原创 Objective-C中的self和super詳解

0x01 self 當調用對象方法時,編譯器都會默認傳入一個指向本對象的指針,所以不同的對象都會調用到正確的成員變量。 這個指針就是self,它的值就是new時在堆中分配內存的首地址。 用在方法中時,哪個對象調用該方法self指針就指向哪

原创 Objective-C 2.0之屬性(2)——屬性參數

0x01 屬性聲明語法 通過在@property後的括號內添加屬性特質參數,可以影響存取方法的生成。 聲明property的語法爲:@property (參數1,參數2,...) 類型 名字 @interface Test : NSOb

原创 使用#pragma編譯器指令在Xcode中整理代碼

當我們真正去做一個項目的時候,代碼都是成千上萬行的,此時只做好程序格式化和標註已經不足以方便閱讀,一個程序中各種方法和程序模塊混合在一起,當有其他人接手工作的時候查找代碼將非常困難。 因此我們可以使用Xcode的#pragma mark指

原创 Objective-C的類別(Category)與類擴展(Extension)

0x01 什麼是類別 類別(Category)是Objective-C語言的一個特性。 可以在不改變類名和原來類的實現的前提下,實現對類的方法擴展。   0x02 創建類別 類別的聲明 類別的聲明看起來非常像類的聲明,但在類的名稱之後是寫

原创 Objective-C對象的初始化(2)——便利初始化函數

0x01 便利初始化函數 有些對象擁有多個以init開頭的方法名,這些方法和普通的方法一樣,只是遵循命名規則約定,用init開頭表示它用於初始化。 很多類中包含便利初始化函數(Convenience Initializer),它們是用來完

原创 在Xcode 7實現ARC轉換

0x01 在Xcode 7實現自動轉換 選擇想要轉換的目標,然後點擊Edit>Convert>To Objective-C ARC...   0x02 項目轉換過程 垃圾回收(GC)如今已經被淘汰,那麼我們打開一個使用了GC的項目來展示