我之前在Xcode中创建了很多应用程序,并且它们的默认工作目录始终是.app文件所在的目录,因此我访问了内容数据,如Whatever.app/Contents/Resources。我知道这可能不是正确的方法,但它始终有效。无论如何,无论是从最近的Xcode更新还是出于其他原因,它们的默认工作文件夹现在都设置为“/”。这只发生在我从Finder运行.app文件时。如果我在Xcode中运行它,文件夹路径是正确的(我可以在可执行选项中设置该路径,但它对直接运行.app时发生的情况没有影响)。这是某个地方还是新标准?
答案 0 :(得分:7)
对于资源,请使用这个很酷的代码:
NSString *path = [[NSBundle mainBundle] pathForResource:@"awesomepic" ofType:@"png"];
你永远不应该依赖PWD和Cocoa。相反,尽可能使用Cocoa API。只有在Apple没有提供其他方式时才应使用BSD API。
static char *appdir;
#import "globheader.h"
@implementation AppController
- (void)method {
appdir = [[[NSBundle mainBundle] bundlePath] UTF8String];
}
@end
#include "globheader.h"
int main() {
printf("%s", appdir);
return 0;
}
答案 1 :(得分:2)
toastie,为什么要使用应用程序包来存储数据?不要改变你的.app。
Instread,使用应用程序支持文件夹。您可以毫无问题地修改该文件夹中的字节。阅读Matt Gallagher的以下帖子,
http://cocoawithlove.com/2010/05/finding-or-creating-application-support.html
问候,