我想下载一个文件。我发现了这个
[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://lasp.colorado.edu/home/wp-content/uploads/2011/03/suncombo1.jpg"]]
我的问题是:
文件保存在哪里?
通过使用线程,是否有可能为下载构建状态栏?
有没有办法更改内存(内部/外部)以保存文件?
现在我正在使用
NSData *dataImage = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://lasp.colorado.edu/home/wp-content/uploads/2011/03/suncombo1.jpg"]];
downloadStatus.text =@"size: %zd", malloc_size(dataImage);
结果总是32.不应该是实际图像的大小吗?
答案 0 :(得分:1)
NSData
对象。NSURLConnection
,尤其是NSURLConnectionDataDelegate
协议。您需要异步下载文件并将回调函数放入代理中才能更新状态栏。或者你可以使用第三方网络库来简化整个过程,但是了解幕后发生的事情是很好的。NSData
对象时将其保存为文件。如果您使用的是Cocoa(不是iOS),则可以使用NSURLDownload
直接下载文件。答案 1 :(得分:0)
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDownloadProgressDelegate:myProgressIndicator];
[request startSynchronous];
NSLog(@"Max: %f, Value: %f", [myProgressIndicator maxValue],[myProgressIndicator doubleValue]);
你也可以点击这个链接来做更多的事情:) http://allseeing-i.com/ASIHTTPRequest/How-to-use
答案 2 :(得分:0)
您可以将下载的数据分配给变量并在UIImageView中显示如下。
NSData *dataImage = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://lasp.colorado.edu/home/wp-content/uploads/2011/03/suncombo1.jpg"]];
self.imageViewYours.image = [UIImage imageWithData:dataImage];
答案 3 :(得分:0)
尝试使用此代码。图像将保存到您的PhotoAlbum。
-(IBAction)save_Image:(id)sender
{
UIImageWriteToSavedPhotosAlbum([UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"Your URL"]]]], self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
[self performSelectorOnMainThread:@selector(imageDownloaded) withObject:nil waitUntilDone:NO ];
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo
{
if (error != NULL)
{
// handle error
}
else
{
// handle ok status
}
}
- (void)imageDownloaded
{
// network animation off
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
// do whatever you need to do after
}
答案 4 :(得分:0)
由于你是Obj-C的新手,我首先要熟悉NSURLConnection和NSURLConnectionDataDelegate(协议)。一旦您感觉自己知道发生了什么,您就可以轻松切换到AFNetworking等网络库,以简化操作。