我正在尝试测试某些东西,并且需要访问与测试类位于同一目录中的文件(实际上位于子目录中)。我正在尝试这样做:

let fileURL = testBundle.URLForResource("MasterCalendar", withExtension: "ics", subdirectory: "Calendars")

我也这样尝试过:
let fileURL = testBundle.URLForResource("MasterCalendar", withExtension: "ics")

我的课叫做ParserTest。我尝试访问的文件位于如下所示的位置:
ios - URLForResource()始终返回nil,swift 2.3,iOS10-LMLPHP

我试图获取文件路径:
 if let filePath = NSBundle.mainBundle().pathForResource("MasterCalendar", ofType: "ics", inDirectory: "Calendars") {
        print("PATH: ", filePath)
    }

我试图删除inDirectory,并且还放了“CallInTests / Calendar”。没事。
文件本身已添加到目标中以进行测试:

ios - URLForResource()始终返回nil,swift 2.3,iOS10-LMLPHP

对于项目:
ios - URLForResource()始终返回nil,swift 2.3,iOS10-LMLPHP

无论我做什么,fileURL始终返回nil。

最佳答案

我还不太清楚如何定义testBundle,但这对我有用:

let bundle = Bundle(for: YourClassHere.self)

因此,在您的情况下,将是:
let bundle = Bundle(for: ParserTest.self)

然后可以这样使用:
if let path = bundle.path(forResource: "MasterCalendar", ofType: "ics") {
  //magic goes here
}

Swift 2.3版本
let bundle = NSBundle(forClass: ParserTest.self)

if let path = bundle.pathForResource("MasterCalendar", ofType: "ics") {
   //magic still goes here :)
}

希望对您有帮助。

10-08 05:41