Objective C學習筆記1

2021-07-06 00:16:56 字數 1992 閱讀 1441

這幾篇筆記是讀《objective-c基礎教程(learn objective-c on the mac for os x and ios)》(第二版)做的筆記。主要是一些讀書時遇到的疑惑,都是自己的理解,不一定正確,紀錄下來方便以後查閱,內容比較基礎,對剛入門ios的朋友也許有些幫助。

1,關於bool型別:

書第14頁(p14),方框裡的說明中舉了乙個例子,當把整數8960賦給bool型別時會被認為是no。這是因為bool在oc中其實就是乙個8位的signed char,而8960的低八位剛好為0.

這裡我們要注意oc中bool和bool的區別。

首先看一下bool的定義:

typedef signed 

char

bool; 

#define yes 

(bool) 

1#define no 

(bool) 0

objective-c 並不會將bool作為僅能儲存yes或no值的真正布林型別來處理。編譯器仍將bool認作8位二進位制數,yes 和 no 值只是在習慣上的一種理解。

而bool型別則跟c一樣,只有

true和false的區別,即0為false,非0為true。

舉例:bool  b1=8960;  // 實際是 no,因為8960換成十六進製制為0x2300,bool 只有8位儲存空間,取0x2300的低8位,00,所以是no

bool  b2=8960;//實際是true,因為bool型別,非0即為true。

同樣需要注意的還有p16中舉的例子,最好不要直接拿bool值跟yes進行對比,因為bool型別並非只有yes和no兩個值。

2.關於oc中的「虛函式」:

虛函式其實是c++中的概念,以實現類的多型性,而p53繼承的工作機制這一節中提到的特性其實跟虛函式的機制很相似,可以說oc中所有類函式(方法)都是虛函式,在當前類中能找到實現方法的直接呼叫該方法,只有當找不到對應的方法的時候才會往上一層去尋找對應方法。當然也可以通過使用super來呼叫父類方法。

3,關於復合與繼承:

p70底下有一段寫的很好,繼承並不是萬能的,不要什麼都第一時間想到繼承,有時候復合更加適合。

4.nsstring的初始化

nsstring變數主要有下面3種常用的定義方式:

//簡單的定義 

nsstring *astring = @"nsstring建立的物件"

;  //不需要分配記憶體空間和初始化 

nsstring *tt = [nsstring stringwithformat:@"hello"

];  

//需要分配記憶體空間和初始化,使用完後需要release 

釋放 nsstring *pp = [[nsstring alloc]initwithformat:@"hello"

];  

前面兩種都不需要手動釋放記憶體,後面兩種可能新手會混淆,第二種是類方法,第三種是例項方法,第二種可以看出是第三種加多一句autorelease,所以不需要手動release記憶體,而第三種則需要手動釋放。

具體可以看:

5,關於nsarray的初始化:

p116種提到兩種初始化方法:

nsarray *array1 = [nsarray arraywithobjects:@"1"

,@"2"

,@"3"

, nil]; 

nsarray *array2 = @[

@"1"

,@"2"

,@"3"];

這兩種方法都可以,但是第二種不需要在結尾加nil。

當然還有下面兩種方法:

nsarray *array3 = [nsarray arraywithobject:@"1"

];  

//單個元素,不常見  

nsarray *array4 = [nsarray arraywitharray:array2]; 

還要注意nsarray只能儲存objective-c物件,而不能存原始c語言的資料型別,如int,float等。

Objective C 學習筆記

1 is a 是乙個 繼承,提高執行效率,減少重複 2 has a 有乙個 復合,物件引用其它物件時,利用其它物件特性。3 返回屬性值的訪問方法,名稱中不能使用get這個詞 4 類名首字母大寫,變數首字母小寫。5 在objective c中所有物件間互動都是通過指標實現的。6 指標值被賦值,只有乙個...

Objective c學習筆記

property是object c的乙個特性,可以讓我們輕鬆實現成員變了的setting和getting方法。具體的語法如下 以成員變數nsstring m name為例 標頭檔案中宣告如下 property nsstring m name m檔案實現 synthesize m name 這樣我們便...

Objective c學習筆記

一 ojective c 建立物件涉及到一下註解 inte ce implementation 前乙個註解定義的是要實現的行為 後乙個註解是實現inte ce定義的行為 1.1在objective c中總共有4個基本資料型別,分別是int float double char 1.2限定詞 限定值有 ...