从OS X 10.10.2和Xcode 6.2 [[NSFileManager defaultManager] currentDirectoryPath]
升级到macOS sierra 10.12.2和Xcode 8.2后,返回/private/tmp
而不是项目目录。在Xcode 6.2中,它返回项目目录。是否有需要手动设置的设置?
问题仅出在测试目标上,我创建了一个示例项目和输出
NSLog(@"currentDirectoryPath is %@",[[NSFileManager defaultManager] currentDirectoryPath]);
是实际目标的工作目录,但对于测试目标,它始终为/private/tmp
。
答案 0 :(得分:0)
使用currentDirectoryPath()不是你最好的选择(使用Xcode8)。在测试类中,您应该使用:
CHARACTER(LEN=1000) :: sLine
INTEGER :: nbValues
CHARACTER(LEN=2) :: sNbValues
...
READ(LU, '(A)') sLine
nbValues = LEN_TRIM(sLine) / 10 ! If format is like '(F10.x)'
WRITE(sNbValues, '(I2)') nbValues
READ(sLine, '('//TRIM(sNbValues)//'(F10.3))') MyArray(1:nbValues)
或
[[NSBundle bundleForClass:[self class]] bundlePath];
这将返回指向bundle的安装位置的NSString / NSURL。对于模拟器构建,路径如下:
了解这一点,您可以从测试包加载资源,例如通过
[[NSBundle bundleForClass:[self class]] bundleURL];