首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XCTestTarget -升级到Xcode8.2后[[NSFileManager defaultManager] tmp]返回/XCTestTarget/tmp

XCTestTarget -升级到Xcode8.2后[[NSFileManager defaultManager] tmp]返回/XCTestTarget/tmp
EN

Stack Overflow用户
提问于 2016-12-19 19:00:16
回答 1查看 76关注 0票数 1

从OS X 10.10.2和Xcode6.2升级到macOS sera10.12.2和Xcode8.2后,[[NSFileManager defaultManager] currentDirectoryPath]返回/private/tmp而不是项目目录。在Xcode 6.2中,它返回项目目录。是否有需要手动设置的设置?

问题只存在于测试目标上,我创建了一个示例项目并输出

对于实际目标,NSLog(@"currentDirectoryPath is %@",[[NSFileManager defaultManager] currentDirectoryPath]);是工作目录,但对于测试目标,它始终是/private/tmp

EN

回答 1

Stack Overflow用户

发布于 2016-12-21 16:49:15

在这里(使用Xcode8),使用currentDirectoryPath()不是最好的选择。在你的测试类中,你应该使用:

代码语言:javascript
复制
[[NSBundle bundleForClass:[self class]] bundlePath];

代码语言:javascript
复制
[[NSBundle bundleForClass:[self class]] bundleURL];

这将返回一个指向捆绑包安装位置的NSString / NSURL。对于模拟器构建,路径如下:

$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME

  • Application测试目标:$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/PlugIns/$TEST_TARGET_PRODUCT_NAME.xctest

  • 逻辑测试目标

了解了这一点,你就可以从你的测试包中加载资源了,例如通过

代码语言:javascript
复制
[[NSBundle bundleForClass:[self class]] pathForResource:[filename stringByDeletingPathExtension] ofType:[filename pathExtension]]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41221138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档