2010-03-13 95 views
1

initWithData不會將我的數據對象正確轉換爲字符串。當我檢查數據對象的長度時,它有一個值。將NSMutableData轉換爲NSString問題

NSMutableData* receivedData =[[NSMutableData data] retain]; 

NSString* json_string = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]; 

我做錯了什麼創建字符串?

+0

你確定你的receivedData沒有被損壞嗎? – 2010-03-13 15:23:20

+0

如何確定它已損壞?什麼是腐敗的可能原因? – 2010-03-13 15:41:51

+0

你的數據實際上是一個有效的UTF8字符串嗎?如果不是,那會失敗。另外,如果你知道你想擁有一個對象,最好[[Obj alloc] init]而不是[[Object convenience]保留] - 你不必做不必要的自動釋放 – 2010-03-13 18:10:16

回答

0

我沒有完全完成NSURLConnection委託方法。這是我的數據正在建立的地方。

4

由於發佈,代碼是無稽之談。您正在創建一個空的不可變數據,然後嘗試從所述空數據創建一個字符串。

什麼*當我檢查數據對象的長度,它有一個值*意味着什麼?你的意思是說你有更多的代碼沒有顯示?用某些字節填充可變數據的東西?

此外,如果接收的數據實際上未被編碼爲UTF-8字符串,則轉換將失敗。 NSString上有許多方法可以進行有損轉換。嘗試其中之一。