我將用最簡單的話來描述我所理解的oc資料型別。
1.基本型別(primitive type)
(1) 常用資料型別 int / float /long / boolen /nsinteger
(2)原生資料型別,直接存在棧上,不會有*。
2.物件型別(object type)
對應的是乙個物件,即object=data+method,這個物件既有屬性也有方法,所以無法直接賦值,所以前面的*必不可少。並且物件在使用時,必須初始化。
(1)nsstring 字串
最常用的屬性和方法:
(2)nsnumber 數字
(3)nsarray 陣列(有序的物件集合)與nsmutablearray
nsarray主要方法:
nsmutablearray主要方法:
遍歷陣列(物件容器)中物件:
nsarray *myarray=@[@"a",@"b",@"c"];
for (nsstring * string in myarray)
for (id obj in myarray)
(4)nsdictonary 字典與nsmutabledictionary
nsdictionary方法:
nsmutabledictionary方法:
遍歷字典中的物件:
for(id key in mydictionary)
3.物件型別和基本資料型別轉換
(1)基本轉物件
nsnumber *intnumber=[nsnumber numberwithint:100];
nsnumber類方法:+(nsnumber*)numberwithchar / int / float / bool:(char/ int / float / bool)value;
(2) 物件轉基本
int a = [intnumber intvalue];
int b=[nsstring integervalue];
總結:在ios開發中,離不開nsarray和nsdictionary.這個陣列不是傳統語言陣列,它只能儲存物件,不能儲存簡單資料型別。陣列也好字典也罷,它們都是乙個物件,而且也都可以儲存多個物件的容器。既然如此,在陣列中可以套字典,在字典中也可以套陣列。
舉個例子,乙個tableview是由多個cell組成的,為建立乙個高效的資料結構,用陣列最合適不過了。tableview的行,正好對應陣列的下表;而每乙個cell又是由多個物件組成(如縮圖、主標題、副標題等),將每個cell對應的資料存成乙個字典,是乙個不錯的資料儲存結構。這麼說來,資料套字典對tableview最合適不過了。
常用的plist檔案,就是乙個典型的字典資料結構。字典是key-object結構,而這裡的object又是以陣列方式存在的,這就是"字典套陣列"結構。
通俗的講,再複雜的資料結構,無非是"陣列中套著字典,字典中套著陣列".
基本型別和引用型別
基本型別和引用型別 ecmascript包含兩個不同型別的值 基本型別值和引用型別值。基本型別值指的是簡單的資料段 引用型別值指由多個值構成的物件。當我們把變數賦值給乙個變數時,解析器首先要做的就是確認這個值是基本型別值還是引用型別值。常見的五種基本資料型別是 undifined null bool...
變數和基本型別
算術型別 arithmetic type c 標準規定了每個算術型別的最小儲存空間,但允許編譯器使用更大的儲存空間。事實上,對於int型,幾乎現在所有的編譯器使用的儲存空間都比所要求的大 也表明,在編寫程式時不能對這些型別的大小做任何假設 c 算術型別最小儲存空間規定如下 注 要特別注意int型,並...
變數和基本型別
c 程式通常由許多檔案組成,為了讓多個檔案訪問相同的變數,c 區分了宣告和定義。變數的定義 definition 用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義。c 支援兩種初始化變數的形式 複製初始化 copy initialization 和直接初始化 dir...