8

我有一个 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

我不知道是什么问题。请提出一些修复建议。

4

3 回答 3

12

通过以下方法添加图像解决了我的问题。

  • 右键单击 xcode 中的项目并选择Add Files to "project name".
  • 从计算机本地磁盘中选择您的图像文件。
  • 在弹出窗口中确保选择Copy items into destination group's folderCreate Folder References for any added foldersAdd to targets
  • 单击Add

然后使用下面的代码,我可以检索我的图像。

对于Objective-C版本

[[NSBundle mainBundle] pathForResource:@"imageName" ofType:@"png"];

适用于Swift 4.0版本

Bundle.main.path(forResource: "imageName", ofType: "png")
于 2013-04-24T10:57:25.507 回答
7

为了灵魂……

转到:目标->“构建阶段”->“复制捆绑资源”然后在此处添加该特定文件。

清理项目并运行。有用。

并且还看到...

NSBundle pathForResource inDirectory 给出 nil

并检查...

NSString *path = [[NSBundle mainBundle] resourcePath];
NSFileManager *fm = [NSFileManager defaultManager];
NSError *error = [[NSError alloc] init];
NSArray *directoryAndFileNames = [fm contentsOfDirectoryAtPath:path error:&error];

打印此 directoryAndFileNames 的所有值并检查您的文件名是否存在于其中......

于 2013-04-24T07:02:19.653 回答
-1

首先检查主 Bundle 中是否有名称为 name 的文件。

没有具有这样名称的文件时,它给出null

于 2013-04-24T07:03:19.290 回答