在NSURLConnection的didReceiveData方法中,appendData存在奇怪的问题

Ste*_* S. 2 nsurlconnection

我在植入简单的NSURLConnection时遇到了这个奇怪的问题......

方法didReceiveData得到调用,我很高兴尝试追加接收数据但是... nada!

确实存在一些数据(因为长度表示但是appendData不会附加数据!

我开始对这个问题感到头疼,我需要一些帮助才能迟到:-)

这里有一些代码可以看:

我的标题......

@interface ActionViewController : UITableViewController {
 Site *site;

 NSURLConnection *siteConnection;
 NSMutableData *receivedData;
    UIView *waitView;
    UIActivityIndicatorView *activityIndicator;

 int nConnections;
    BOOL fail;
}
Run Code Online (Sandbox Code Playgroud)

我的实施..

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    // Append the new data to receivedData.
 NSLog(@"Received %d bytes of data",[data length]);
    [receivedData appendData:data];
 NSLog(@"Received %d bytes of data",[receivedData length]);
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{

    NSLog(@"Succeeded! Received %d bytes of data",[receivedData length]);

 [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
 [activityIndicator stopAnimating];
 waitView.hidden = YES;

    // release the connection
    [connection release];
}
Run Code Online (Sandbox Code Playgroud)

控制台输出......

[Session started at 2010-08-21 21:27:55 -0400.]
2010-08-21 21:28:19.263 myApp[2042:207] Received 108 bytes of data
2010-08-21 21:28:19.263 myApp[2042:207] Received 0 bytes of data
2010-08-21 21:28:19.263 myApp[2042:207] Succeeded! Received 0 bytes of data
Run Code Online (Sandbox Code Playgroud)

我不明白!救命!!!

顺便说一下,数据是一个简单的xml结果,看起来像这样......

<donnee>0</donnee><donnee>0</donnee><donnee>0</donnee><donnee>1</donnee><donnee>0</donnee><donnee>0</donnee>
Run Code Online (Sandbox Code Playgroud)

Ste*_* S. 12

好吧,在这个网站的另一个问题上得到了我的答案关于NSMutableData ...忘了初始化的东西!(代码18或将消息发送到nil的剩余部分是Objective-C的NICE特性)

receivedData = [[NSMutableData alloc] init];
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,同样的问题让我感到害怕. (2认同)