Xcode 为什么我的jpg文件绝对路径不';行不通

Xcode 为什么我的jpg文件绝对路径不';行不通,xcode,path,Xcode,Path,我检查了一些类似的问题,但没有找到我问题的答案 问题的第一部分是如何编写文件的相对路径。我没有得到这项工作,但现在让我移动第二部分。因为我不能得到相对路径,所以我尝试了绝对路径。以下是我使用的代码: NSString *path = [NSString stringWithFormat:@"/Users/my.name/Documents/TestFour/TestFour/Library/file%d.txt", i]; //where i is 1 or 2 //NSString *path

我检查了一些类似的问题,但没有找到我问题的答案

问题的第一部分是如何编写文件的相对路径。我没有得到这项工作,但现在让我移动第二部分。因为我不能得到相对路径,所以我尝试了绝对路径。以下是我使用的代码:

NSString *path = [NSString stringWithFormat:@"/Users/my.name/Documents/TestFour/TestFour/Library/file%d.txt", i]; //where i is 1 or 2
//NSString *path = [NSString stringWithFormat:@"./TestFour/Library/file%d.txt", i]; //this relative path didn't work, although TestFour.xcodeproj and TestFour are in the same directory and TestFour has child directory Library and xxx.h and xxx.m files
NSString *spath = [path stringByStandardizingPath];
NSLog(@"file is %@", spath);
if (spath) {
    NSString *myText = [NSString stringWithContentsOfFile:spath encoding:NSUTF8StringEncoding error:nil];
    //continue, and I got myText ....
现在,我有一个jpg文件,比如myPic.jpg,在与上面的file1.txt相同的目录中,也就是说,在Library文件夹中。我想将此图像加载到UIImageView中,这是我的代码,但失败了

NSString *path = @"/Users/my.name/Documents/TestFour/TestFour/Library/myPic.jpg";
NSString *spath = [path stringByStandardizingPath];
[self.bgviewsetimage:[UIImage imagename:spath]]

然而,我尝试了一个基于网络的图像,顺便说一句,它来自另一个相关的线程,它工作了: [self.\bView setImage:[UIImage alloc]initWithData:[NSData DATA WITH CONTENTSOFURL:[NSURL URLWITH字符串:@]http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]]];

所以我很困惑,为什么我可以读取同一个文件夹,却不能加载同一个文件夹,而不能加载myPic.jpg


回到第一部分,为什么我的相对路径不起作用?不确定这是否相关,当我将这个和其他jpg拖到项目中时,我被询问并选择了默认设置(组或类似的东西)。我不知道是否需要将此jpg拖动到项目中,但在拖动之前和之后,代码都不起作用。

[UIImage imageNamed
]将从应用程序包中加载具有给定名称的文件;您需要的是
[UIImage imageWithContentsOfFile]
()

您还需要了解相对文件路径是基于进程的当前工作目录工作的。你知道那是什么吗?如果没有,则可以使用以下方式记录:

char cwd[1024];
getcwd(cwd, sizeof(cwd));
NSLog(@"cwd='%s'", cwd);
(您可能需要导入)


也许这会帮助您解决相对路径问题。

好奇让我检查
getcwd()
是否可用。。它是!然而,它只是返回
/
@JamesWebster是从沙盒应用程序中返回的吗?@JamesWebster嗯,我不太熟悉沙盒应用程序,但这肯定会影响相对路径(我猜它们将成为绝对路径…)imageWithContentOfFile确实使用了我的JPG绝对路径!谢谢现在需要查看相对路径。