Time of Update: 2015-12-09
標籤: 雖然到目前為止最好的Objective-C 編碼平台來自蘋果公司,但它們絕不僅適用於蘋果公司的平台。Objective-C 在Linux、BSD 甚至Windows 等其他平台都有相當久遠的曆史。根據具體需求,你會發現一些能很好地支援這些替代平台的開源社區。本章將簡要介紹一些其他的平台,並告訴你在哪裡可以找到更多關於它們的資訊。 在其他平台上使用Objective-C 時面臨的最大的挑戰在於對能使Objective-C 變得強大的架構的支援。移植Objective-C
Time of Update: 2015-12-14
標籤:郝萌主傾心貢獻,尊重作者的勞動成果,請勿轉載。假設文章對您有所協助,歡迎給作者捐贈,支援郝萌主,捐贈數額任意。重在心意^_^ 我要捐贈: 點擊捐贈Cocos2d-X原始碼下載:點我傳送將一個變數賦值給還有一個對象只建立還有一個對這個對象的引用。類似於Java中,賦值是一個引用。參考C++或者C的指標來理解就easy了。這裡的賦值事實上就是指標地址賦值而已。Foundation類實現了名
Time of Update: 2015-12-13
標籤:#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { &
Time of Update: 2015-12-10
標籤:#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) { FILE* fp1;//定義檔案指標用於讀檔案 char* fp2;//用來判斷是否歌詞讀完 char s[80];//暫存歌詞 long int time2=0; long int time=0;//用來計算時間,精度為秒,不夠完善,望高人指點 int a=1;//起判斷作用
Time of Update: 2015-12-08
標籤:代碼塊 除了函數中的代碼,代碼塊還包括變數綁定。代碼塊還有另一個名稱:閉包(closure)。 代碼塊保護兩種類型的綁定:自動型與託管型。自動綁定使用棧中的記憶體,託管綁定使用堆中的記憶體。 代碼塊的格式與函數指標的有點像。函數指標:void (*f)(void);代碼塊:void (^f)(void);只需把“*”換成“^”。 然後我們來寫一個代碼塊: int (^f)(int a,int b) = ^(int a,int b){
Time of Update: 2015-12-08
標籤:一、基本概念 Block:塊文法,本質上是匿名函數(沒有名稱的函數),蘋果推薦的類型,效率高,用來封裝和儲存代碼,BLOCK可以在任何時候執行。 標準C裡面沒有Block,C語言的後期擴充版本,加入了匿名函數,C++、JS、Swift等語言,有類似文法,叫做閉包。 Block文法和函數指標很相似。 Block和函數的相似性:(1)可以儲存代碼(2)有傳回值(3)有形參(4)調用方式一樣。 Block就是一個匿名函數,它是OC對於閉包的實現,在塊狀中我們可以
Time of Update: 2015-12-08
標籤: 1,用於通知某個對象該做什麼,即通知對象去執行某動作。在Objective-c中,“[]”的意義:它們用於通知某個對象該做什麼。這種通知對象執行某中操作的行為被稱為“發送訊息”。例如:[shape
Time of Update: 2015-12-06
標籤:self,superself理解為C++裡的this,當使用self調用方法時,會從當前類中開始尋找,沒有就依次尋找上一級父類。super就是父類,可以直接調用父類的方法。+/-OOP中存在公有方法和私人方法,OC中沒有,但是用+/-來表示普通方法和靜態方法。另外可以用@private來表示私人變數,OC中所有的變數預設都是私人的,方法都是公有的。深拷貝和淺拷貝淺拷貝就是增加一個指標指向記憶體位址,深拷貝是增加一個指標並且申請一個新的記憶體。深拷貝的好處很明顯了,前一種方式可能出現A
Time of Update: 2015-12-06
標籤:開發人員通過對象來 儲存並傳遞資料。在對象之間傳遞資料並執行任務的過程就叫做“訊息傳遞”。這兩條特性的工作原理?Objective-C運行期環境(Objective-C runtime) ,提供了使得對象之間能夠傳遞訊息的重要函數,並且包含建立類執行個體所用的全部邏輯。第六條:理解“屬性”這一概念property:Effective Objective-C 2.0 — 第二章 對象、訊息、運行期 - 第六條:理解“屬性”這一概念
Time of Update: 2015-12-07
標籤:一、注釋 1. 注釋是什嗎?注釋就是在代碼中一段用來說明的,不執行的字串。2. 注釋的定義?在 OC 中,我們使用雙斜杠“//”來表示單行注釋,在一句代碼的最開始處加上雙斜杠(//)即可。//NSLog(@"這行代碼是單行注釋");我們還使用“/*”和“*/”表示多行注釋。/*NSLog(@"窗前明月光");NSLog(@"疑是地上霜");NSLog(@"舉頭望明月");NSLog(@"低頭思故鄉");*/3
Time of Update: 2015-12-06
標籤:第四條:多用類型常量,少用#define預先處理指令 使用#define 預先處理的壞處:定義出來的常量沒有類型資訊,編譯器只是會在編譯前據此執行尋找與替換操作。即使有人重新定義了常量值,編譯器也不會產生警告資訊,這將導致應用程式中的常量值不一致。 使用例如:static const NSTimeInterval kAnimationDuration = 0.3;在實現檔案中使用 static const
Time of Update: 2015-12-06
標籤:一、傳統的get方法和set方法 在Java中,我們可以通過"對象名.成員變數名"來訪問對象的公用成員變數,這個就稱為"點文法"。在正式學習OC的點文法之前,先來看一下傳統的get方法和set方法。定義一個Student類,擁有一個成員變數age和對應的get\set方法。 Student.h 1 #import <Foundation/Foundation.h> 2 3 @interface Student : NSObject { 4 int age; 5 }
Time of Update: 2015-12-05
標籤:今天學習的內容比較少,主要是老師通知要確定畢設的題目,找了一些資料,最終決定做一個路線記錄的APP。一些快捷操作:全部禁用所有斷點,command + Y.h和.m檔案切換,comand + control + upArrow/dowArrow注釋當前行command + ,格式化代碼control + iOC中的OOP[email protected]部分 定義類的公用介面,聲明類[email protected]部分 可以理解為interface部分具體的實現&
Time of Update: 2015-12-05
標籤: NSDate NSDate 時間類,繼承自NSObject,其對象表示一個時間點 NSDate *date = [NSDate date]; NSLog(@"date = %@", date); 2015-12-04 19:08:00.624 OCNSDate[2955:309612] date = 2015-12-04 11:08:00 +0000 列印顯示的是格裡尼治時間 年-月-日 時:分:秒 + 時區
Time of Update: 2015-12-05
標籤:Objective-C中的分類允許我們通過給一個類添加方法來擴充它(但是通過category不能添加新的執行個體變數),並且我們不需要訪問類中的代碼就可以做到。Objective-C中的協議是普遍存在的介面定義方式,即在一個類中通過@protocol定義介面,在另外類中實現介面,這種介面定義方式也成為“delegation”模式,@protocol聲明了可以唄其他任何方法類實現的方法,協議僅僅是定義一個介面,而由其他的類去負責實現。在本章中,我們來看看runtime
Time of Update: 2015-12-05
標籤:理解Method Swizzling是學習runtime機制的一個很好的機會。在此不多做整理,僅翻譯由Mattt Thompson發表於nshipster的Method Swizzling一文。Method Swizzling是改變一個selector的實際實現的技術。通過這一技術,我們可以在運行時通過修改類的分發表中selector對應的函數,來修改方法的實現。例如,我們想跟蹤在程式中每一個view controller展示給使用者的次數:當然,我們可以在每個view
Time of Update: 2015-12-05
標籤:類型編碼(Type Encoding)作為對Runtime的補充,編譯器將每個方法的傳回值和參數類型編碼為一個字串,並將其與方法的selector關聯在一起。這種編碼方案在其它情況下也是非常有用的,因此我們可以使用@encode編譯器指令來擷取它。當給定一個類型時,@encode返回這個類型的字串編碼。這些類型可以是諸如int、指標這樣的基本類型,也可以是結構體、類等類型。事實上,任何可以作為sizeof()巨集指令引數的類型都可以用於@encode()。在Objective-C
Time of Update: 2015-12-05
標籤:super在Objective-C中,如果我們需要在類的方法中調用父類的方法時,通常都會用到super,如下所示:@interface MyViewController: UIViewController@end@implementation MyViewController- (void)viewDidLoad { [super viewDidLoad]; // do something
Time of Update: 2015-12-05
標籤:基礎資料類型SELSEL又叫選取器,是表示一個方法的selector的指標,其定義如下:typedef struct objc_selector *SEL;objc_selector結構體的詳細定義沒有在<objc/runtime.h>標頭檔中找到。方法的selector用於表示運行時方法的名字。Objective-C在編譯時間,會依據每一個方法的名字、參數序列,產生一個唯一的整型標識(Int類型的地址),這個標識就是SEL。如下代碼所示:12SEL sel1 =
Time of Update: 2015-12-04
標籤:“加號代表static”是錯誤的說法,可能跟你那樣表達的人其實意思是:“前置加號的方法相當於Java 裡面的靜態方法”。在Oc中,方法分為類方法和執行個體方法。前置加號(+)的方法為類方法,這類方法是可以直接用類名來調用的,它的作用主要是建立一個執行個體。有人把它稱為建立執行個體的Factory