1

目前,我们的应用程序的工作方式是下载一个描述我们想要的信息的文本文件。然后我们使用 NSURLConnection 并请求文本文件描述的一个数据包。然后我们请求下一个数据包,等待它进来,检查它,然后再请求下一个数据包。

没有文本文件有没有更好的方法来做到这一点?我觉得我应该能够让应用程序说“InformationForJohnDoe”,然后服务器将开始为 JohnDoe 发送所有数据包,但在这种情况下,我不知道我怎么知道哪些数据在哪个我的 connectionDidFinishLoading 委托方法。

Web 服务实现如下所示:

[WebGet(UriTemplate = "GetTestData/{file}")]
        public Stream GetTestData(string file)
        {

            string fileName =
               "\\testdirectory" + file;
            if (File.Exists(fileName))
            {
                FileStream stream = File.OpenRead(fileName);
                if (WebOperationContext.Current != null)
                {
                    WebOperationContext.Current.OutgoingResponse.ContentType = "text/.txt";
                }
                return stream;
            }
            return null;
        }

我不是一个 C# 的人。我才刚刚开始使用 C# 和 Web 服务。

4

1 回答 1

0

这个想法是你附加到你在类中定义的 NSData 你从

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

方法。

那么,在

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

方法,您知道所有数据都已完全加载并可以使用。

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
{
    NSLog(@"Connection didReceiveData of length: %u", data.length);
    [self.dataData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 
{
   // do seomething with self.dataData


}
于 2012-08-07T21:35:08.043 回答