object-c基礎學習 基於<iOS軟體開發揭秘>

來源:互聯網
上載者:User

標籤:

一 oc基礎資料型別 (Elementary Data Type)

1,id類型指向object-c對象的指標

 可以指向任意的物件類型,可以將任意訊息傳遞給id,id不支援該訊息時,會返回運行時異常,"unrecognized selector send to instance xxx"訊息;

常用於表示類的委託屬性,例:@property  id<協議名> delegate;

2,SEL類型,用來定義方法的關鍵字

oc對象可以接受任何訊息,但不一定能響應,通過方法:respondsToSelector()來判斷對象是否能響應某個訊息,保護代碼,

- (BOOL)respondsToSelector:(SEL)aSelector; ->NSObject類

3,nil,NULL,NSNULL --空值

nil用於對對象賦值,NULL給任何指標賦值,NSNULL用於集合操作

nil對象可以接受訊息,返回0值,不引起異常

4.基本資料

整數類型 int  4位元組 , short 2byte , long 32位機4byte 64位機8位元 , long long 8位元組,

浮點型 單精確度float 4位元組 , 雙精確度double 8位元組

    float a=6.7;

    NSLog(@"%f",a);  --->6.700000

    NSLog(@"%.6f",a); ----> 6.700000

    NSLog(@"%.10f",a); ----->6.6999998093

布爾類型 bool 1位元組

BOOL 4位元組

字元類型 char

枚舉類型

二 宏定義

#define  定義函數,數字,字串

靜態變數static int i=0;//局部靜態變數作用在方法體內,等同於全域變數

#pragma mark -用於分隔代碼塊

#pragma mark NETWORK API

 

三 記憶體管理

記憶體管理的原則:誰建立 誰釋放

1.手動記憶體管理MRR manual retain release

2.自動引用計數ARC Automatic Reference  Counting

常見記憶體錯誤:1.記憶體泄露,對象沒有在使用結束釋放掉,造成常駐記憶體的現象;2.過度釋放,對象還沒有使用就被釋放了,提前釋放造成系統崩潰.

能讓引用計數增加的操作:

1.alloc new retain copy 使對象的引用計數+1;//需要程式員自己手動release釋放

2.採用類方法建立對象,會使引用計數+1,由系統方法內部建立,由系統自己釋放

3.父控制項載入子控制項時,[self addsubView:xxx]讓對象的引用計數+1

4.對屬性進行賦值時,會讓對象的引用計數+1;

5.向數組中添加對象,引用計數+1,刪除數組中的對象引用計數-1;

能讓引用計數減少的方法:

release  autorelease 使對象的引用計數-1;

當引用計數為0時,自動調用對象類的dealloc方法,對象佔用的記憶體被收回

全域的對象在本類的dealloc方法中釋放

靜態方法建立的對象,聲明為全域後,對象會被系統自動釋放,需保留一次引用計數,否則在別的方法中再使用該對象時會崩潰

在方法體內建立的對象,可使用autorelease 加入自動釋放池,在一定時期後釋放

 

 

 

 

 

 

 

 

 

 

 

 

object-c基礎學習 基於<iOS軟體開發揭秘>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.