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

最佳答案

对于资源,请使用以下很酷的代码:

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

您永远不要依靠 cocoa 的PWD。相反,请尽可能使用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;
}

10-05 23:51