1 前言
IOS中存儲資料就要涉及到資料類型,今天我們來學習一下IOS中的資料類型。
2 詳述
2.1 基本資料類型
在對象的執行個體變量中使用原始類型沒有任何壞處,我們不用擔心保留和釋放。不需要隻能加額外的對象開銷。
NSInteger看起來很像類名,其實隻是類型定義。類似的還有NSRange用來定義一組資料的範圍和NSTimeInterval用浮點值表示一段時間。
永遠是類型定義執行個體變量和對象執行個體變量有所不同,由于不涉及釋放和拷貝,是以他們用@property的assign屬性進行定義。例如:
@property (nonatomic,assign) NSUInteger exclamationCount;
@property (nonatomic,copy)NSString *originalString;
通過設計出資料類型複制可以簡化代碼:
exclamationCount = 8;
而且在 -dealloc方法中,也不需要釋放exclamationCount。使用基礎資料類型使代碼更加簡單,又不會犧牲任何功能。
2.2 對象化(Objectified)
值對象的好處:
(1)可以在集合中存儲一組對象。
(2)對象類提供了很多功能方法來對這些值進行操作,在代碼實作中會帶來更多的的靈活性,同僚節省很多的時間。
2.3 值對象舉例
2.3.1 NSString
NSString是用于處理字元串的對象,其功能:
(1)Unicode支援及字元串編碼轉換。
(2)讀取檔案的文本及其編碼
(3)分割和合并字元串。
(4)用來轉義作為URL的字元串。
(5)字元串查找和擷取Unicode字元數。
(6)将字元串轉化成數字。
(7)大小寫轉換。
(8)字元格式化和本地化。
(10)根據使用者的目前語言設定,使用很多項進行字元串比較,包括忽略變音符号和按數值排序。
2.3.2 NSNumber
再做數值轉換時候會用到,如果用一個浮點數建立了一個值對象,然後向該對象擷取一個無符号字元值(-unsignedCharValue),就會在原始對象内部進行一個沒有任何損失的轉換。
2.3.3 NSDecimalNumber
如果進行貨币計算,可以使用該類,具有38位有效數字并且指數範圍在-128~127的數字。
2.3.4 NSDate
日期對象,提供了操作時間的基本功能,如:
(1)比較哪個日期更早
(2)兩個日期之間間隔的秒數
(3)可以和NSCalendar一起使用,計算涉及時區或閏年問題的兩個時間之間間隔的月數和天數。
2.3.5 NSData
作為一個非結構化位元組流的對象,提供了管理資料緩沖區的機制,資料對象通常要存儲到磁盤上,是以提供了讀寫方法。
2.3.6 NSNull
表示空值。集合不允許有nil對象,是以當需要一個空的數組,字典,集時候可以使用NSNull。
2.3.7 NSValue
它可以将任何有效的變量類型封裝成值對象。
2.4 集合
2.4.1 NSArray
可以指定集合内的順序,提供了排序和篩選資料的機制。
2.4.2 NSDictionary
用鍵-值的方式來存放對象,實作了一個關聯數組(associative array),可以用鍵來進行相關索引。
2.4.3 NSSet
用來存放那些對順序沒有要求的對象,通常用于數學運算,其中的方法可以測試等式,交集和子集。
還可以在NSArray中嵌套NSDictionary,或者在NSDictionary中嵌套NSArray。
3 結語
以上是所有内容,希望對大家有所幫助。