2010-09-01 63 views
1

我有這樣的代碼......解析的NSString取出數據

NSData* myData = producedData; 
NSLog(@"Contents of myData: %@", myData); 

日誌打印

{ 「ID」= 「」; 「level」=「level_1」; 「手柄」=測試; }

我該如何獲取id和level的值並處理這個值?原始數據是一個NSString *。

謝謝!

回答

0

您沒有顯示實際獲取數據對象的代碼,也沒有顯示與NSString相關的任何代碼。

你只是將一個字符串(​​)分配給你的myData變量嗎?這不會創建數據對象;一方面,它不知道使用什麼編碼將字符串的字符編碼爲字節,更重要的是,將指針從一個變量複製到另一個變量(這正是myData = producedData所做的 - 變量不包含對象本身,僅指向它們的指針)不會改變指針指向的內容。即使您告訴編譯器myData將指向一個數據對象,該對象仍然是一個字符串。編譯器應該警告你這件事;你應該留意並修正這些警告。

myData絕對不是數據對象;如果是,它的描述本身就是十六進制轉儲。它是一個字符串或字典。

您顯示的輸出與NSDictionary用來描述自身的語法相匹配。另一方面,該對象可以是包含這種描述的字符串。 (後一種情況就是你所期望的。)

如果你有一本詞典:你完成了!該對象已被解析。
如果你有一個字符串:發送一個propertyList消息,它將把字符串解析爲一個屬性列表,並返回其中表示的任何值,在這種情況下,它將是一個字典。