objective-c – 从Objective C中的NSBundle获取图像路径?
栏目: Objective-C · 发布时间: 5年前
内容简介:翻译自:https://stackoverflow.com/questions/4044376/get-image-paths-from-nsbundle-in-objective-c
我想在Core Data中存储大约60张图像,其中30张是头像,前缀为avt_filename_00X.png,其中30张较小且前缀不同.
我没有将所有图像存储为Core Data / SQLite中的BLOB,而是希望存储找到的每个图像的路径(与存储 MySQL 数据库的图像路径的方式相同).
但是我不知道如何获取NSBundle中的图像路径.
我可以通过以下方式获取NSDocumentDirectory的路径:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSFileManager *fileManager = [NSFileManager defaultManager]; [fileManager fileExistsAtPath:documentsDirectory]; NSLog(@"documentsDirectory = %@", documentsDirectory);
我可以加载图像并将其添加到数组中.
if (qty == 0) { //NSLog(@"fileToLoad = %@", fileToLoad); UIImage *img = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:fileToLoad ofType:fileExt]]; [self.avtList addObject:img]; [img release]; } else { // load multiple image into an array // not coded yet }
但是,我不确定的是:
>如何获取计算机在NSBundle内部找到图像的路径?
>当应用程序在设备上时,如何确定路径是否有效?
我们的想法是将所有图像存储在一个数组中,然后将它们推送到Core Data / SQLite.
获取主包中资源的完整路径的正确方法是:
[[NSBundle mainBundle] pathForResource:@"avt_filename_00X" ofType:@"png"]
(或者,如果您希望在资源名称中包含扩展名,则可以为’ofType’提供空字符串)
但是在文档中没有任何地方保证在设备,操作系统迭代等之间保持相同的路径.它是当前环境中应用程序包中该文件的路径,保证在此应用程序运行期间保持有效.只要.
因为应用程序的路径以及它的资源不能保证保持不变,所以我认为以任何方式将它放在 SQL 数据库中显然是不安全的.
您是否可以采用一种方案,其中以/开头的文件名是完整路径,假设在开头没有/的文件在包中,这意味着您可以在数据库外部应用逻辑?
翻译自:https://stackoverflow.com/questions/4044376/get-image-paths-from-nsbundle-in-objective-c
以上所述就是小编给大家介绍的《objective-c – 从Objective C中的NSBundle获取图像路径?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。