IOS學習 OC基礎學習1

2021-06-26 11:09:30 字數 3221 閱讀 3117

oc:

在c的基礎上增加了一層最好的物件導向語法

副檔名.m

基本語法:

1、關鍵字:

基本上所有的關鍵字都是以@開頭

2、字串一@開頭

其他與法:

引進了bool型別(yes,no)

nil 相當於c語言中的null,也是0

nslog(@"hello");nslog(@"%d",27);

//@與「」之間無空格,且輸出之後自動換行

開發過程

.m原始檔->.o目標檔案->a.out可執行檔案

#import的用途

1、跟include一樣,拷貝檔案內容

2、可以防止檔案內容被拷貝多次

foundation 框架

nsobjcruntime.h中有宣告nslog的函式宣告

#import

編譯時相同

鏈結時如果用到foundation框架,要標明

cc xx.m -framework foundation

每乙個框架都有自己的主標頭檔案,要想使用這個框架中的所有.h檔案就要import 這個框架下的這個.h檔案(主標頭檔案)

因此 要使用nslog()函式需要

#import

引入foundation.h這個主標頭檔案後,就可以使用整個foundation框架中的東西

foundation框架標頭檔案的路徑

執行過程:

1、編寫oc原始檔:.m,.c

2、編譯:cc -c ***.m,***.c

(只有用到foundation框架才需要加上-frameworkfoundation)

4、執行:./a.out

bool布林型

本質:typedef signed char bool;

取值範圍: yes,no

#define yes (bool)1

#define no  (bool)0

輸出:當做整型來輸出

nslog(@"%d",yes)

注意:必須要大些

面向過程(procedure oriented):關注解決問題的步驟

物件導向(object oriented):關注解決問題所需要的物件

物件導向程式設計(object oriented programing)簡稱oop

1、類的設計

①、類名 類名的第乙個字母必須大寫,不用下劃線

②、屬性

③、行為(功能)

2、植物大戰殭屍

殭屍:*類名:zoombie

*屬性:life(生命值)、speed(速度)、gongjili(攻擊值)

*行為:walk(行走)、bite(咬)、die(死亡)

3、雷電飛機

*類名:plane

*屬性:life、gongjili、speed、bombcount、

*行為:fly、bomb、shoot、die

4、電腦

*類名:computer

*屬性:price、band(牌子)、expiredate(保質期)

*行為:open、close

具體例子:

類名:car

屬性:輪胎個數、時速

行為:跑

//完整的寫乙個函式:函式的宣告和定義(實現)

//完整的寫乙個類:類的宣告和實現

//1、類的宣告:用來宣告物件的屬性、行為

//:nsobject 目的是:讓car這個類具備能建立物件的能力

@inte***ce car :nsobject//開始

//方法(行為):方法名、引數、返回值(宣告、實現)不//能放在{}之中

//只要是oc物件的方法,必須以-開頭

//oc方法中任何資料型別,都必須用()擴住

//oc方法中()的作用就是擴住資料型別

- (void) run;//run()中無資料型別,不需要()

@end//結束

//2、類的實現

@implementation car

//方法的實現(說清楚方法裡面有什麼**)

-(void)run

@end

int main()/*人

類名:person

屬性(成員變數\例項變數):體重、年齡

行為(方法):走路、吃

*///1、類的宣告(寫成員變數、寫方法的宣告)

@inte***ce person :nsobject

- (void) walk;

@end

//2、類的實現

@implementation person

//實現@inte***ce中宣告的方法

- (void)walk

@end

int main()

注意:1、inte***ce與implementation不能巢狀

2、方法的實現必須寫在implementation裡面

3、成員變數不允許在定義時賦值

oc方法和函式的區別:

方法:1、物件方法都是以減號-

2、物件方法的宣告必須寫在@inte***ce和@end之間,物件方法的實現必須寫在@implementation和@end之間

3、物件方法只能由物件來呼叫

4、物件方法歸類\物件所有

函式1、函式能寫在檔案中的任意位置(除@inte***ce與@end之間),函式歸檔案所有

2、函式呼叫不依賴於物件

3、函式內部不能直接成員變數名訪問某個物件的成員變數

/*計算器類

方法:1、返回π

2、計算兩個整數的和

3、計算兩個整數的和 

*/帶引數的方法名(方法名:claculator:  類中可出現名為claculator 的另乙個方法 不帶:)

oc方法中乙個引數對應乙個冒號,該冒號也是方法名的一部分

- (int)claculator:(int)num;

- (int)sum:(int)num1(加空格) :(int)num2;//一定加空格

- (int)sumwithnum1:(int)num1 andnum2:(int num2);

- (int)sumwithnum1:(int)num1 andnum2:(int num2) andnum3:(int)num3;

相當於c中的

int claculator(int num){}

主函式中的呼叫:

[jsq calculator:10];//計算10的平方,呼叫方法+引數傳遞

IOS學習 OC基礎學習4

點語法 person類中有 age乙個成員變數 設定成員變數 age的值 person p person new p.age 10 p setage 10 獲取成員變數的值 int a p.age p age 根據有無賦值判斷是get方法還是set方法 點語法的本質還是方法呼叫 可通過在set和ge...

iOS開發學習筆記 OC基礎

for int i 0 i items count i for nsstring item in items 快速列舉的限制 如在迴圈體中增加或刪除物件,則不能使用快速列舉,這時只能用for迴圈。nslog函式負責將指定字串輸出到xcode控制台。nslog的實參個數並不確定,但第乙個實參是必須的,...

IOS學習 OC記憶體管理

記憶體管理 引用計數器 oc物件被引用的次數,為0的時候該物件被銷毀,記憶體 retain 引用次數 1 返回的是物件本身 release 引用次數 1 沒有返回值 retaincount 獲取引用次數。dealloc oc物件被銷毀的時候會呼叫dealloc方法,繼承該 方法 放最後面 super...