2010-02-24 90 views
0

我想提出申请,拍照断的网站,并将它们保存到NSDocumentDirectory供以后使用。到目前为止,我的努力失败了,我想知道如何去做。如何拍摄的图像关闭一个网站,并把它保存到NSDocumentDirectory

没有更多的解释是必要的,但这里有一些我的(失败)的尝试:
一:

NSString *path = @"http://miniwidgit.webs.com/TabRight2.png"; 
NSFileManager *fmgr = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *fileName = [[NSString alloc] initWithFormat:@"%@/File.jpg", documentsDirectory]; 
NSLog(fileName); 
NSError *err; 
if ([fmgr copyItemAtPath:path toPath:fileName error:&err]) 
{} 
else 
{ 
    NSLog([NSString stringWithFormat:@"%@%@.", @"There was an error. The error was: ", err]); 
} 

二:

NSURL *path = [NSURL URLWithString:@"http://miniwidgit.webs.com/TabRight2.png"]; 
NSFileManager *fmgr = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *fileName = [[NSString alloc] initWithFormat:@"%@/File.jpg", documentsDirectory]; 
NSLog(fileName); 
NSError *err; 
NSString *image = [[NSString alloc] initWithContentsOfURL:path]; 
[image writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionExternalRepresentation error:&err]; 
NSLog([NSString stringWithFormat:@"%@%@.", @"There was an error. The error was: ", err]); 

一个,我得到了错误:

Error Domain=NSPOSIXErrorDomain Code=2 UserInfo=0x3b171b0 "Operation could not be completed. No such file or directory,"

但这没有任何意义,因为图像(在我的si te)存在。

在二,我得到了错误:

Error Domain=NSCocoaErrorDomain Code=517 UserInfo=0x3b33090 "Operation could not be completed. (Cocoa error 517.)"

+0

需要很多解释的,从你所得到的错误。 – Nifle 2010-02-24 21:51:43

+1

为什么你试图把图像变成一个字符串变量?你为什么试图将.png文件保存为.jpg? – 2010-02-24 22:13:38

回答

4

这不是一个文件路径 - 这是一个HTTP资源的URL。您需要使用其中一个URL加载API(例如NSURLDownload)来下载图像。

随着你现在在1号的代码,它正在寻找名为“TabRight2.png”的文件,该文件位于名为“miniwidget.webs.com”的目录中,该目录位于名为“http:”的目录中,在当前目录中 - 当然没有找到。

有了第二个,你要的图像加载到一个NSString。这很难说确切的错误是在这种情况下什么,但这是不可取的,并可能是罪魁祸首。 NSString用于文本,图像可以包含任何编码中无效的文本。你应该使用NSData来存储二进制数据,而不是NSString。

相关问题