を使用してビットマップをダウンロードしていNSURLConnection
ます。デリゲートを に設定し、メソッドとself
を実装します。データが受信されると、それをオブジェクト ( inputと呼ばれます) に格納し、接続の最後に、これを使用してビットマップを作成します。問題は、 でデータを受け取ることですが、 では null です。これを修正するにはどうすればよいですか?connection:didReceiveData
connectionDidFinishLoading
NSMutableData
connection:didReceiveData
connection:DidFinishLoading
- (void)start
{
NSURL *url = [NSURL URLWithString:src];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
connection = [[NSURLConnection alloc] initWithRequest:request
delegate:self
startImmediately:YES];
}
- (void)connection:(NSURLConnection *)conn
didReceiveData:(NSData *)d
{
NSLog(@"Data Received: %@", d);//This prints the correct data
//Add data chunk to input
[input appendData:d];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)conn
{
CPLog(@"Finished Receiving bitmap from server. Data received with length %d: %@", [input length], input);//this prints length 0 and a value of (null)
CFDataRef imgData = (__bridge CFDataRef) input;
CGDataProviderRef imgDataProvider = CGDataProviderCreateWithCFData (imgData);
CGImageRef image;
if (!imgDataProvider)
{
NSLog(@"Request Failed!");//happens every time
[callback handleBitmap:nil];
return;
}
image = CGImageCreateWithJPEGDataProvider(imgDataProvider, NULL, true, kCGRenderingIntentDefault);
[callback handleBitmap:image];
return;
}