我有一个iPhone应用程序,其中我将images
目录(组)添加到Resources
(组)。我想访问images
中的图像。我需要一个到那些图像的路径,所以我创建了一个像下面这样的代码。
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"myImage1" ofType:@"png" inDirectory:@"images"];
NSLog(@"%@", imagePath);
结果:
(null)
我也试过这段代码
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"myImage1" ofType:@"png"];
但是这段代码给了我(null)
结果。
myImage1
的路径为Resources/images/myImage1.png
我不知道是什么问题。请提出一些修正建议。
答案 0 :(得分:11)
通过以下方法添加图像解决了我的问题。
Add Files to "project name"
。Copy items into destination group's folder
和Create Folder References for any added folders
以及Add to targets
。Add
。然后用波纹管代码我可以检索我的图像。
Objective-C 版本
[[NSBundle mainBundle] pathForResource:@"imageName" ofType:@"png"];
Swift 4.0 版
Bundle.main.path(forResource: "imageName", ofType: "png")
答案 1 :(得分:7)
为了灵魂......
转到:目标 - > “构建阶段” - > “copy bundle Resources”然后在这里添加该特定文件。
清理项目并运行。它有效。
还看到......
NSBundle pathForResource inDirectory gives nil
NSString *path = [[NSBundle mainBundle] resourcePath];
NSFileManager *fm = [NSFileManager defaultManager];
NSError *error = [[NSError alloc] init];
NSArray *directoryAndFileNames = [fm contentsOfDirectoryAtPath:path error:&error];
打印此directoryAndFileNames的所有值并检查您的文件名是否存在....
答案 2 :(得分:0)
首先检查主Bundle中是否有名称名称的文件。
当没有具有此类名称的文件时,它会提供 null 。