天天看點

iPhone App開發實戰手冊學習筆記(3)之資料類型1 前言2 詳述3 結語

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 結語

以上是所有内容,希望對大家有所幫助。