Tôi đang có một khoảng thời gian với thứ gì đó có vẻ như
đơn giản nhưng tôi dường như không hoạt động. Tôi đang xây dựng một ứng dụng iPhone
để truy xuất dữ liệu từ máy chủ lưu trữ web. Tôi đang cố gắng để
thiết lập kết nối không đồng bộ với máy chủ lưu trữ vì tôi muốn giữ thiết bị
được giải phóng trong khi kết nối. (. SendSynchronousRequest đóng băng
điện thoại cho đến khi yêu cầu được thực hiện) Đây là mã của tôi kết nối:Không có dữ liệu được trả lại bằng cách sử dụng NSURLConnection Không đồng bộ
//temp url to see if data is returned:
NSURL *theURL = [NSURL URLWithString:@"http://www.theappleblog.com/feed"];
NSURLRequest *dataRequest = [NSURLRequest requestWithURL:theURL
cachePolicy:NSURLRequestReloadIgnoringLocalCacheData
timeoutInterval:60];
/* establish the connection */
theConnection = [[NSURLConnection alloc]
initWithRequest:dataRequest
delegate:self
startImmediately:YES];
if (theConnection == nil) {
NSLog(@"Connection Failure!");
self.urlData = nil;
} else {
self.urlData = [[NSMutableData data] retain];
}
tôi đã tất cả các phương pháp đại biểu thích hợp thiết lập:
-(void)connection:(NSURLConnection *)connection
didReceiveResponse:(NSURLResponse*)response
{
[urlData setLength:0];
UIApplication *application = [UIApplication sharedApplication];
application.networkActivityIndicatorVisible = YES;
NSLog(@"Received Response!");
}
-(void)connection:(NSURLConnection *)connection
didReceiveData:(NSData*)incrementalData
{
[self.urlData appendData:incrementalData];
NSNumber *resourceLength = [NSNumber
numberWithUnsignedInteger:[self.urlData length]];
NSLog(@"resourceData length: %d", [resourceLength intValue]);
NSLog(@"filesize: %d", self.urlDataSize);
NSLog(@"float filesize: %f", [self.urlDataSize floatValue]);
}
-(void)connectionDidFinishLoading:(NSURLConnection*)connection
{
NSLog(@"Connection finished loading\n");
NSLog(@"Succeeded! Received %d bytes of data",[urlData length]);
_isFinished = YES;
UIApplication *application = [UIApplication sharedApplication];
application.networkActivityIndicatorVisible = NO;
}
- (void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error
{
NSLog(@"Error: %@",[error localizedDescription]);
}
Như bạn thấy, tôi đã có một chiếc thuyền tải các thông điệp log vì tôi muốn
để xem nếu bất cứ điều gì đang đến qua cả. Kiểm tra kết nối của tôi
trở lại là TRUE nhưng không có dữ liệu nào được tải. Như tôi đã nói, tôi chắc chắn
Tôi phải đang thực hiện (hoặc không thực hiện) điều gì đó thực sự ngu ngốc. Nhưng cái gì?
Mọi trợ giúp sẽ được đánh giá cao nhất.
Xin cảm ơn, Lawrence
Bạn nên định dạng lại để mã hiển thị chính xác. Thật khó đọc. Sử dụng cú pháp markdown hoặc thậm chí bật wiki cộng đồng để một số người lạ có thể sửa chữa nó cho bạn. – amattn
Thông điệp tường trình nào của bạn thực sự hiển thị? –
Không ai trong số họ hiển thị. –