目錄ios
1、OC語言介紹編程
2、ios系統數組
3、在OC語言開發中使用C語言語法xcode
4、面向對象app
回到頂部框架
1、OC語言介紹編程語言
1 早在20世紀80年代早期,BardCox發明了Objective-C,擴充了C,面向對象的編程語言。ide
2 NextSTEP簡稱NS;函數
1985年,Steve Jobs成立了NeXT公司;工具
1988年,Next Software公司得到了OC語言的受權,NEXTSTEP環境,爲了蘋果操做系統建立的開發包,發行操做系統OSX的基礎,
1996年,蘋果公司收購了NeXT Software公司,NEXTSTEP環境爲了蘋果操做系統,建立的開發包,發行操做系統OSX的基礎。這個開發環境版本被蘋果公司改名位Cocoa框架。
3 Cocoa框架是蘋果公司爲了MAC OS X所建立的原生面向對象的編程環境。Cocoa應用程序通常在蘋果的工具xcode上用OC編寫的應用程序。
APP Store (全稱:Application Store應用程序商店)
使用cocoa編程環境開發的應用程序叫cocoa應用。
使用cocoa touch編程框架 -> IOS app
cocoa框架由兩部分組成,Foundation框架和Application Kit框架。
Foundation框架是基本框架,包括:字符串、數字、數組、字典集合等。
Application Kit框架,應用程序工具箱,包括實現程序圖形、事件驅動和用戶界面的所有對象,如:窗口、對話框、按鈕、菜單。。。並且這個列表還在不斷添加。
2、IOS系統
IOS系統是蘋果硬件(便攜設備)上的一個操做系統,在2007年1月9日,MacWorld大會上公佈的系統,最初設計給iPhone使用的,後來陸續用到iPod touch、iPad、apple TV等蘋果產品。
開發方向:IOS App、IOS Game
使用語言:IOS App(C、OC)、IOS Game(C、OC、C++)
第一個程序
1 iOS
create project -> ios -> application -> single view application -> run
2 OSX
create project -> osx -> create project -> command line tool -> type:foundation
測試:C語言的語法是否能夠在main.m文件使用變量、條件分支、循環、函數、結構體、指針。
3、在OC語言開發中使用C語言語法
1 main.c -> main.m
2 include - > import(避免重複導入)
標準函數庫 -> 庫(Foundation)
3 輸出函數printf -> NSLog(加入了時間、地點)
在OC中全部的字符串前都要加上'@'符號
4 在編譯的時候,gcc不支持OC的新語法,應該使用新的編譯命令clang,編譯連接時,須要指定使用的框架(-framework Foundation)
命令行:clang -framework Foundation main.m
OC中獨有的內容
1 xcode編譯器,LLVM:LowLevelVirtualMachine
2 邏輯值數據類型
BOOL = YES(1) // NO(0)
練習:定義一個函數,求兩個數是否相等,函數的返回值是邏輯只類型,在main函數中,根據邏輯值輸出兩個數是否相等。
1 //bool 2 #import <Foundation/Foundation.h> 3 //練習:定義一個函數,求兩個數是否相等,函數的返回值是邏輯值類型,在main函數中,根據邏輯值輸出兩個數是否相等。 4 BOOL test(int i1,int i2) 5 { 6 if (i1 == i2) { 7 return YES; 8 }else{ 9 return NO; 10 } 11 } 12 13 int main(int argc, const char * argv[]) 14 { 15 16 @autoreleasepool { 17 BOOL b; 18 int i1 = 4,i2 = 8; 19 b = test(i1, i2); 20 if (b) { 21 NSLog(@"相等"); 22 }else{ 23 NSLog(@"不相等"); 24 } 25 NSLog(@"Hello, World!"); 26 //邏輯值數據類型 27 bool b1 = true; 28 NSLog(@"b1:%d",b1); 29 BOOL b2 = YES; 30 NSLog(@"b2:%d",b2); 31 32 } 33 return 0; 34 }
4、面向對象
1 類是一種主觀思想,是對咱們須要解決問題的一種抽象,是建立對象的模型。
2 對象就是具體的數據集合,計算機會把類->實例化->對象。
3 第一個面向對象程序
設計類Student,一個類由兩個部分組成.h(聲明)和.m(實現)
類的實例化->對象:
經過類發送alloc(開闢內存空間)建立對象,經過對象(指針變量)找到內存的對象。
向對象發送消息(函數),此時對象就會響應消息。
對象若是有屬性,對象.屬性=值,給對象的屬性賦值。
練習:建立一個point類,有橫座標x,縱座標y,能顯示位置(show方法),建立兩個位置並顯示。
main.m
1 // 2 // main.m 3 // 第一個面向對象程序 4 // 5 // Created by tarena on 13-12-16. 6 // Copyright (c) 2013年 tarena. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 #import "Student.h" 11 12 int main(int argc, const char * argv[]) 13 { 14 15 @autoreleasepool { 16 //建立Student對象,alloc 開闢內存空間 17 //Student類 -> alloc實例化 -> stu對象(指向首地址) 18 Student* stu = [Student alloc]; 19 NSLog(@"stu address:%p",stu); 20 stu.age = 12; 21 [stu study];//調用類中的動態(-)方法 22 //[Student study];//調用類中的靜態(+)方法 23 24 } 25 return 0; 26 }
Point.h
1 // 2 // Point.h 3 // 第一個面向對象程序 4 // 5 // Created by tarena on 13-12-16. 6 // Copyright (c) 2013年 tarena. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 @interface Point : NSObject 12 13 @end
Point.m
1 // 2 // Point.m 3 // 第一個面向對象程序 4 // 5 // Created by tarena on 13-12-16. 6 // Copyright (c) 2013年 tarena. All rights reserved. 7 // 8 9 #import "Point.h" 10 11 @implementation Point 12 13 @end
Student.h
1 // 2 // Student.h 3 // 第一個面向對象程序 4 // 5 // Created by tarena on 13-12-16. 6 // Copyright (c) 2013年 tarena. All rights reserved. 7 // 8 9 #import <Foundation/Foundation.h> 10 11 @interface Student : NSObject 12 13 @property int age; 14 15 -(void)study; 16 @end
Student.m
1 // 2 // Student.m 3 // 第一個面向對象程序 4 // 5 // Created by tarena on 13-12-16. 6 // Copyright (c) 2013年 tarena. All rights reserved. 7 // 8 9 #import "Student.h" 10 11 @implementation Student 12 -(void)study 13 { 14 NSLog(@"%d調用了study方法",self.age); 15 } 16 @end
說明:由於OC文件太多,代碼也太多,就不分享了。