iOS有哪些數據類型/基本數據類型?


簡述

本文主要探究使用OC作為iOS開發語言時,我們能使用哪些數據類型。

 


一切類型始於C。

C語言的類型

基本數據類型:

基本數據類型(fundamental data types)也叫原始數據類型(primitive data types)

整型、字符型、浮點型、枚舉型

C數據類型及內存占用

枚舉型在計算機內部以 int 類型存儲

除了基本數據類型,C還有

構造類型:

數組類型, 結構體類型(struct), 共用/聯合體類型(union)

union一般在對單片機等內存比較小的設備進行編程時才使用。

指針類型:

data_type *pointer_name

由於指針在實質上是一個內存地址,內存地址的長度跟CPU的尋址有關(與data_type無關)

所以在32位系統上, 指針占據4個字節;在64位系統上,指針占據8個字節

空類型(void):

空類型一般用於函數的返回值,表示不需要返回任何類型。

由於void類型只是一個抽象概念,並不會存在於內存中,自然就沒有字節占用。

 


有了類,世間萬物皆可定義。

OC語言類型

由於Objective-C是C語言的嚴格超集,因此以上的數據類型也是OC數據類型。

相比於C

OC是一門面向對象語言,如同C++一樣支持用戶定義類型(class)

用戶定義類型為Cocoa框架的誕生提供了可能。

 


類型越來越復雜,代碼越來越簡潔。

iOS數據類型

一般而言,我們所說的數據類型/基本數據類型都是指一門語言的。

iOS數據類型 = C數據類型 + Cocoa類

iOS數據類型不是一種嚴謹的叫法,實際上指的是C數據類型加上Cocoa框架集合(Foundation、UIKit等)中定義的的數據類型,也即Cocoa類(泛指所有基於Objective-C運行時且派生自根類NSObject的類)。

Foundation框架中定義的NSObject類是iOS中最重要的數據類型,用戶定義的類都需要繼承自它從而獲得調用iOS系統資源的能力。Foundation中還有一個重要的集合Collection)概念,其包含了NSArray、NSSet、NSDictionarry以及各自的可變類型;此外,還有NSString、NSMutabString、NSNumber等重要的類型。以上提及的類型均繼承自NSObject,是用戶定義類型(class)而並非構造類型(struct),它們在被賦值或者被傳入函數或者方法時,不會發生值拷貝,而是傳遞現有實例的引用。

總結

 

iOS數據類型

注:由於在iOS中BOOL實際上是signed char類型的重命名,NSInteger等也大同小異,因而並沒有將它們歸為新的類型。

參考

C/基本數據類型

C 語言中不同類型指針的大小是否完全相同,為什么?

iOS布爾類型

內存:棧和堆(C / Swift)

NSObjectNSNumber


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM