2011-08-23 53 views
0

我使用url連接(http)。iPhone,NSURLConnection> didReceiveData:(NSData *)數據,如何檢查結果數據

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 

     NSString *filePath; /* .../link.plist */ 
     [data writeToFile:filePath atomically:YES]; 
    } 

連接後,我檢查結果文件(link.plist)

- (void)checkLinkResult { 

     NSString *filePath; //link.plist 
     NSString *result = [[NSString alloc] initWithContentsOfFile:filePath]; 
    } 

它工作正常。

但是我想檢查結果字符串,直接,沒有做文件。

「的NSData - >文件 - >的NSString」(現在)====> 「的NSData - >的NSString」(我想)

幫助我PLZ。

回答

1

這取決於您的數據。

如果你的數據是圖像

UIIMage * image = [[UIImage alloc] initWithData:Receivedata 

如果數據串

NSMutableString *string = [[NSMutableString alloc] initwithData:Receivedata encoding:nil] 
+0

謝謝!我曾嘗試NSUTF8StringEncoding。但它會重新設置錯誤的字符串。什麼意思是「endcoding:nil」? – ChangUZ

+0

如果你的角色是UTF,你應該使用NSUTFStringEncoding –

+0

你把我的代碼放在: - **(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data ** method? –

0

在didReceiveData中寫入NSMutableData對象,然後在checkLinkResult中使用適當的編碼從NSMUtableData創建一個字符串。

它實際上是如何在蘋果NSConnection教程中完成的。

+0

如何知道「合適的編碼」? – ChangUZ

0

遵循以下步驟:

  1. 聲明文件範圍NSMutableData實例。
  2. 在你的連接:DidRecieveData:回調追加「數據」到先前創建的NSMutableData實例。
  3. 在connectionDidFinishLoading:callback中使用initWithData:encoding:的NSString,並傳遞NSMutableData實例和NSUTF8StringEncoding作爲參數。
相關問題