iPhone,NSURLConnection> didReceiveData:(NSData *)数据,如何检查结果数据

时间:2011-08-23 07:34:23

标签: iphone nsurlconnection nsdata

我使用url连接(http)。

    - (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 - > file - > NSString”(现在)====> “NSData - > NSString”(我想要)

帮帮我。

3 个答案:

答案 0 :(得分:1)

这取决于您的数据。

如果您的数据是图像

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

如果数据是字符串

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

答案 1 :(得分:0)

在didReceiveData中写入NSMutableData对象,然后在checkLinkResult中使用适当的编码从NSMUtableData创建一个字符串。

实际上它是如何在苹果NSConnection教程中完成的。

答案 2 :(得分:0)

请按照以下步骤操作:

  1. 声明文件范围NSMutableData实例。
  2. 您的连接中的
  3. :DidRecieveData:callback将“data”附加到先前创建的NSMutableData实例。
  4. 在connectionDidFinishLoading中:回调使用initSithData:encoding:of NSString,并将NSMutableData实例和NSUTF8StringEncoding作为参数传递。