2014-02-19 100 views
0

我只是混淆了什麼時候使用NSData。我即將獲得存儲在服務器中的一些數據(我只是用的Dropbox這裏,而不是一些練習。)我沒有什麼 到目前爲止字節緩衝NSData

  • 提出了一些P-列表存儲2個陣列,一個存儲字符串對象,另一個存儲音頻數據的公用URL的字符串對象。

  • 當我從plist中創建的NSString,我沒有使用NSData對象

  • 當我創建的NSAudio播放器存儲在同一個項目文件夾中的數據,我沒有使用NSData對象
  • 當我創建的NSAudio播放器的數據存儲在服務器中時,我使用NSData

我只是不明白何時正確使用NSData對象。我檢查了應用程序文檔,但它說「數據對象讓簡單的分配緩衝區」這裏分配的緩衝區是什麼? 謝謝,

回答

3

NSData只是一個字節數組的包裝。無論您需要什麼字節數組,您都可以使用字節數組並手動執行所有操作(訪問和操作數據),也可以將其包裝在NSData(或NSMutableData,如果需要修改字節)並使用Apple提供的功能可以輕鬆訪問或修改數據。

分配的緩衝區是存儲在NSData包裝內的字節數組。假設你在磁盤上有一個音頻對象,你想在中間修改一個字節。您可以將該數據從磁盤加載到音頻元素中,但不能修改它。如果從磁盤加載字節值到NSMutableData,則可以直接訪問字節,使用提供給NSMutableData類的簡單方法修改任何您想要的內容,然後將音頻元素還原到磁盤(或將該數據直接加載到您的磁盤中音頻元素)。

NSData對象的最佳用途只有當你需要它時,就像任何其他類一樣。如果您特別需要該功能來運行您的應用程序,然後使用它。否則,它可能只是一個不需要的添加步驟(例如磁盤上的數據 - >音頻元素與磁盤上的數據 - > NSData - >音頻元素)。

+0

很好的答案。 (投票) –

+0

@DuncanC謝謝,先生。 – Putz1103

+0

@ Putz1103:非常感謝你:) – Tosh