Mac app默认工作目录

时间:2010-12-23 17:44:09

标签: cocoa xcode macos

我之前在Xcode中创建了很多应用程序,并且它们的默认工作目录始终是.app文件所在的目录,因此我访问了内容数据,如Whatever.app/Contents/Resources。我知道这可能不是正确的方法,但它始终有效。无论如何,无论是从最近的Xcode更新还是出于其他原因,它们的默认工作文件夹现在都设置为“/”。这只发生在我从Finder运行.app文件时。如果我在Xcode中运行它,文件夹路径是正确的(我可以在可执行选项中设置该路径,但它对直接运行.app时发生的情况没有影响)。这是某个地方还是新标准?

2 个答案:

答案 0 :(得分:7)

对于资源,请使用这个很酷的代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"awesomepic" ofType:@"png"];

你永远不应该依赖PWD和Cocoa。相反,尽可能使用Cocoa API。只有在Apple没有提供其他方式时才应使用BSD API。


globheader.h

static char *appdir;

appcontroller.m

#import "globheader.h"

@implementation AppController

- (void)method {
  appdir = [[[NSBundle mainBundle] bundlePath] UTF8String];
}

@end

cppcode.cpp

#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

问候,