iOS-Can';t显示下载的图像
我使用下面的代码下载图像,但每当我尝试显示它们时,都不会显示任何内容。我已经测试了从应用程序(在模拟器中)将图像下载到我的桌面上的过程,所有的图像都创建得很好。所以我知道它们被保存到应用程序的文档目录中 你知道我做错了什么吗 下载图像代码:iOS-Can';t显示下载的图像,ios,uiimage,nsdata,Ios,Uiimage,Nsdata,我使用下面的代码下载图像,但每当我尝试显示它们时,都不会显示任何内容。我已经测试了从应用程序(在模拟器中)将图像下载到我的桌面上的过程,所有的图像都创建得很好。所以我知道它们被保存到应用程序的文档目录中 你知道我做错了什么吗 下载图像代码: -(void)saveThumbnails:(NSMutableArray *)thumbnails{ for(NSNumber *videoID in thumbnails){ // Get an image from the UR
-(void)saveThumbnails:(NSMutableArray *)thumbnails{
for(NSNumber *videoID in thumbnails){
// Get an image from the URL below
NSURL *thumbnailURL = [self generateThumbnailURL:[videoID intValue]];
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:thumbnailURL]];
NSLog(@"%f,%f",image.size.width,image.size.height);
// Let's save the file into Document folder.
// You can also change this to your desktop for testing. (e.g. /Users/kiichi/Desktop/)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);//Find Application's Document Directory
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"DownloadedThumbnails"];
// NSString *dataPath = @"/Users/macminidemo/Desktop/gt";//DEBUG SAVING IMAGE BY SAVING TO DESKTOP FOLDER
//Check if Sub-directory exists, if not, try to create it
if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath]){
NSError* error;
if([[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:&error]){
NSLog(@"New Folder Created!");
}
else
{
NSLog(@"[%@] ERROR: attempting to write create new directory", [self class]);
NSAssert( FALSE, @"Failed to create directory maybe out of disk space?");
}
}
NSArray *splitFilename = [[self generateThumbnailFilename:[videoID intValue]] componentsSeparatedByString:@"."];//Break Filename Extension Off (not always PNGs)
NSString *subString = [splitFilename objectAtIndex:0];
NSString *formattedFilename = [NSString stringWithFormat:@"%@~ipad.png",subString];
NSString *localFilePath = [dataPath stringByAppendingPathComponent:formattedFilename];
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)];
[imageData writeToFile:localFilePath atomically:YES];
NSLog(@"Image: %@ Saved!",formattedFilename);
}
}
显示图像代码:
if(currentVideo.thumbnail!=(id)[NSNull null] || ![currentVideo.thumbnail isEqualToString:@"missing_image.png"]){
NSArray *splitFilename = [currentVideo.thumbnail componentsSeparatedByString:@"."];//Break Filename Extension Off (not always PNGs)
NSString *subString = [splitFilename objectAtIndex:0];
NSString *formattedFilename = [NSString stringWithFormat:@"%@~ipad.png",subString];
UIImage *thumbnailImage = [UIImage imageNamed:formattedFilename];
NSLog(@"Image Name: %@",formattedFilename);
[videoThumbnail setImage:thumbnailImage];
[buttonVideo addSubview:videoThumbnail];
}else{
UIImage *thumbnailImage = [UIImage imageNamed:@"video-details-thumbnail"];
[videoThumbnail setImage:thumbnailImage];
[buttonVideo addSubview:videoThumbnail];
}
*显示按钮视频或类似的内容没有问题。我已经测试过设置一个测试图像,其中一个显示得很好(即单独运行时使用默认缩略图的“else”语句工作得很好)名为
的ImageName的文档说明它可以处理应用程序主包中的文件。这对我来说意味着它只适用于作为应用程序内资源提供的图像。尝试imageWithContentsOfFile:
获取文档目录的内容。Ahhh。天才!是的,我一直试图使用[UIImage imageWithData],但没有意识到有办法使用实际的文件。