Time of Update: 2015-07-16
標籤:單例模式在iOS開發中可能算是最常用的模式之一了,但是由於oc本身的語言特性,想要寫一個正確的單例模式相對來說比較麻煩,這裡我就拋磚引玉來聊一聊iOS中單例模式的設計思路。關於單例模式更多的介紹請參考這篇文章。單例顧名思義就是說一個類的執行個體只能有一個,在java、C++這類語言中,可以通過將建構函式私人化來避免對象的重複建立,但是objective-c卻不能夠這樣做,我們需要通過其他機制來達到這個目的。一般情況下,可能我們寫的單例模式是這樣的: #import
Time of Update: 2015-08-29
標籤:protocol 協議protocol:用來聲明方法 1.協議的定義 @protocol 協議名稱 <NSObject> // 方法聲明列表.... @end 2.如何遵守協議 1> 類遵守協議 @interface 類名 : 父類名 <協議名稱1, 協議名稱2> @end 2>
Time of Update: 2015-08-19
標籤:協議(protocol)是Objective-c中一個非常重要的語言特性,從概念上講,非常類似於JAVA中介面. 一個協議其實就是一系列有關聯的方法的集合(為方便後面敘述,我們把這個協議命名為myProtocol)。協議中的方法並不是由協議本身去實現,相反而是由遵循這個協議的其他類來實現。換句話說,協議myProtocol只是完成對協議函數的聲明而並不管這些協議函數的具體實現。聲明一個協議的文法非常簡單: [cpp] view
Time of Update: 2015-08-09
標籤:執行個體變數:屬性其實說直白點就是 ivar + setter + getter(執行個體變數+存取方法),不過在OC中屬性多了字面量這一系列特殊關鍵字使得OC屬性有些不同。成員屬性我們應該都使用過,比如現在定義一個Car類有name和speed成員變數:#import <Foundation/Foundation.h>@interface Car : NSObject{ @public NSString *name; NSInteger
Time of Update: 2015-08-07
標籤: Objective-C http://rypress.com/tutorials/objective-c/indexC Basics http://rypress.com/tutorials/objective-c/c-basicsComments 註解 Inline comments Block comments Confusing snippest困惑的(代碼)片段
Time of Update: 2015-08-04
標籤:objective-c ios 記憶體管理 一、記憶體管理的?式大家都去過圖書館,而圖書館裡的書是可以借出的。我們來設想這樣一個情境,大家都去借書,但是從來沒有人去還書,那麼最後,這個圖書館會因為無書可借而倒閉,每個人都沒法再使用圖書館。電腦也是這樣,當程式運行結束時,作業系統將回收其佔用的資源。但是,只要程式運行就會佔用資源,如果不進行清理已經不用的資源,資源最終將被耗盡,程式將崩潰。學
Time of Update: 2015-08-03
標籤:objective-c oc oc異常報錯 must explicitly desc 在做Oc的一個OOP的畫多種圖形例子的時候。Xcode無端報Must explicitly describe intended ownership of an object array
Time of Update: 2015-08-02
標籤:objective-c 繼承 ios 一、繼承繼承的上層:父類,繼承的下層:子類。繼承是單向的,不能相互繼承。繼承具有傳遞性:A繼承於B,B繼承於C,A具有B和C的特徵和?為。子類能繼承父類全部的特徵和行為。 例題 打殭屍。需求: 1、定義普通殭屍類: 執行個體變數:殭屍總血量、殭屍每次失血量。 方法:初始化方法(總血量)、被打擊失血、死亡。 2、定義路障殭屍類:
Time of Update: 2015-07-28
標籤:objective-c ios ios開發 記憶體管理 記憶體管理:確保在需要的時候分配記憶體,在程式運行結束時釋放佔用的記憶體如果只分配記憶體而不釋放記憶體,則會發生記憶體流失(leak
Time of Update: 2015-07-26
標籤:關於Objective-C 的property,很多iOS開發的新手都會很迷惑,也會包括有經驗的iOS開發程式員,因為Objective-C的property,說多不多,說少卻也不少,從MRR(Manual Retain Release )到ARC模式,很多屬性功能類似名稱卻不一樣,比如strony和retain,而且又牽扯到release, autorelease, alloc
Time of Update: 2015-07-26
標籤:面板模式外觀設計模式和適配器差不多,不過它門對對象控制的粒度不同,適配器一般只是控制一個系統和用戶端的對接。外觀則是用來抽象多個系統一起工作。外觀一般具有多個子系統,所以外觀應持有多個子系統的引用,同構向高層提供抽象介面實現封裝。外觀一般是可以多次使用的,比如一個龐大的系統中,可以多次使用外觀來進行封裝,然後再對外觀使用外觀封裝達到多層抽象的目的。 使用情境子系統正逐漸層得複雜。應用模式的過程中演化出來許多類。可以使用外觀為這些子系統類提供一個較簡單的介面。可以使用外觀對子系統進
Time of Update: 2015-07-25
標籤:%@對象%d, %i整數%u,%z無符整形%f浮點/雙字%x, %X十六進位整數%o八進位整數%zusize_t%p指標%e浮點/雙字 (科學計算)%g浮點/雙字%sC字串%.*sPascal字串%c字元%Cunichar%lld64位長整數(long long)%llu無符64位長整數%Lf64位雙字%hhdBOOL布爾類型關於Objective-C格式化處理相關規範
Time of Update: 2015-07-24
標籤:objective-c 對象方法 類方法 xcode
Time of Update: 2015-07-23
標籤:Objective-C學習之旅 第三篇 Objective-C 類聲明,定義,執行個體,初始化類聲明//類聲明的編譯處理指示以@interface開始,以@end結尾,在這之間代碼便是類變數的定義和方法的聲明。//類的聲明和定義比其他語言複雜,這會讓剛開始學習Objective-C的人非常困惑//準確的說,其他語言如Java只需定義類而不用聲明,而Objective-C需要先聲明再定義。@interface 類名 : 父類名 { 聲明成員變數
Time of Update: 2015-07-20
標籤: 在前面三篇關於資料持久化,我們都用涉及到檔案(plist檔案,資料庫檔案),它們都是把它們儲存在document目錄下。iOS的檔案機制是沙箱機制,應用只能訪問自己應用目錄下的檔案。iOS應用產生的內容,像、檔案、緩衝內容等都必須儲存在自己的沙箱內。預設情況下,每個沙箱含有3個檔案夾:Documents, Library 和
Time of Update: 2015-07-19
標籤:1.原型 原型設計模式所謂原型設計模式,其實就是對象複製,這個特性在所有語言基本上都是存在的。我們知道在OC中,對象賦值其實是對對象的引用複製,其實就是相當於C語言中的指標。建立了一個新的變數,但是還是指向的同一塊記憶體位址。所以一旦一個引用改變了該對象的屬性,那麼其他指向該對象的引用全部都會發生變化。有時候我們並不像要這樣做,我們希望重新建立一個和賦值對象一模一樣的一個對象。比如我們寫遊戲的時候建立了一個enemy對象並對其複雜的行走路徑進行了自訂,此時我們想要在建立一個。但是
Time of Update: 2015-07-18
標籤:interface 標示 程式 objective-c 第四章 繼承 繼承的文法格式:@interface Circle: NSObject。冒號後邊的標示符石需要繼承的類。 OC中不支援多繼承。 第一個帶有繼承的程式 @interface Shape : NSObject{ ShapeColor fillColor; ShapeRect
Time of Update: 2015-07-17
標籤:1.類目類目就是為已存在的類添加新的方法。但是不能添加執行個體變數。比如系統的類,我們看不到他的.m檔案,所以沒有辦法用直接添加方法的方式去實現。 Category的使用情境有那些呢:1、類包含了很多個方法實現,而這些方法需要不同團隊的成員來實現2、當你在使用基礎類庫中的類時,你不想繼承這些類而只想添加一些方法時。 Category能實現上面的需求,當然也有使用Category是需要注意的問題:1、Category可以訪問原始類的執行個體變數,但不能添加執行個體變數,如
Time of Update: 2015-07-15
標籤:一個有節操的程式員會在乎自己的代碼的警告,就像在乎飯碗邊上有只死蟑螂那樣。——@onevcat 重視編譯警告現在編譯器有時候會很吵,而編譯器給出的警告對開發人員來說是很有用的資訊。警告不會阻止繼續編譯和連結,也不會導致程式不能運行,但是很多時候編譯器會先你一步發現問題所在,對於Objective-C來說特別如此。Clang不僅對於明顯的錯誤能夠提出警告(比如某方法或者介面未實現),也能對很多潛在可能的問題做出提示(比如方法已經廢棄或者有問題的轉換),而這些
Time of Update: 2015-07-08
標籤:概述NSNumber和NSValue都是用來做裝箱用的,把基本類型的資料裝成對象。官方文檔給的資料說明地很清楚: /*NSValue.hCopyright (c) 1994-2014, Apple Inc. All rights reserved.*/#import <Foundation/NSObject.h>@class NSString, NSDictionary;@interface NSValue : NSObject <NSCopying,