我有一个sqlite数据库存储在Document目录中,图像名称存在于表的一列中。图像存储在应用程序包中。图像是通过使用代码在列中给出imga的名称直接来的。 .means不需要指定任何路径..只是名字很好。
现在如果我将图像动态存储在文档目录中并直接在Sqlite db的image列中给出图像的名称,我就无法获取它。我是否需要指定任何到达那里的路径..在应用程序包中图像是直接来的。
答案 0 :(得分:5)
是。您需要在文档目录中指定sqlite文件的路径。
或者使用以下代码和相应的图像名称(图像位于文档目录中):
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *imagePath = [documentsDirectory stringByAppendingPathComponent:@"img.png"];
yourImageView.image = [UIImage imageWithData:[NSData dataWithContentsOfFile:imagePath]];
答案 1 :(得分:0)
您可以获得如下目录路径:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
要获取图像,您必须在此路径后附加图像名称。您的数据库中有数据,因此您可以获取imagename。
答案 2 :(得分:0)
如果数据库中的值只是图像的名称(例如" someimage.png"),那么您有两种可能:
1)如果图像在应用程序包中,则使用UIImage imageNamed:
方法从数据库中使用值。我相信你已经有了这个工作。
2)如果图像在Documents
目录中,那么您还需要做更多的事情。您需要获取Documents
目录的完整路径,然后将文件名(从数据库)附加到路径。这将为您提供Documents
目录中图像的完整路径。然后要加载图像,您需要使用传递完整文件路径的UIImage imageWithContentsOfFile:
方法。
答案 3 :(得分:0)
使用此代码。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory35 = [paths objectAtIndex:0];
//Essential Info
NSString *fullPathEssentialInfo = [documentsDirectory35 stringByAppendingPathComponent:@"EssentialInfo.txt"];
这是实现的代码。谢谢
答案 4 :(得分:0)
这里有一个访问SQLite的示例项目:https://github.com/AaronBratcher/ABSQLite