【发布时间】:2012-09-16 12:33:05
【问题描述】:
在我的应用程序中,用户可以将图像保存到他们的文档目录中。在启动时,我抓取图像,添加边框,然后像这样将其放入 UIImageview 中......
NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString *docDirectory = [sysPaths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/ImageOne.jpg", docDirectory];
UIImage *unborderedImage = [[[UIImage alloc] initWithContentsOfFile:filePath] autorelease];
//image found....add border
UIImage *imageWithBorder = [self addBorderToImage:unborderedImage];
imageOneView.image = imageWithBorder;
理想情况下,我喜欢在添加边框之前先检查图像是否存在。如果没有,请加载“图像不可用”占位符。像这样的:
NSArray *sysPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES );
NSString *docDirectory = [sysPaths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/ImageOne.jpg", docDirectory];
UIImage *unborderedImage = [[[UIImage alloc] initWithContentsOfFile:filePath] autorelease];
NSError * error;
if (error != nil) {
//image found....add border
UIImage *imageWithBorder = [self addBorderToImage:unborderedImage];
imageOneView.image = imageWithBorder;
} else
//no image saved
[imageOneView setImage:[UIImage imageNamed:@"photoNotAvailable.png"]];
}
当然,这是行不通的。如果找不到“ImageOne.jpg”,我似乎无法弄清楚如何处理。
【问题讨论】:
-
不要做
[NSString stringWithFormat:@"%@/ImageOne.jpg", docDirectory]之类的事情; NSString 提供路径处理例程是有原因的 -
很高兴指出不该做什么,但没有提供正确的方法。
-
我告诉过你
NSString有路径处理例程。查找它们并不难。
标签: nserror initwithcontentsoffile