为什么swift不能识别我的资源?

时间:2016-01-28 17:21:52

标签: ios swift url directory bundle

Swift告诉我我的文件不存在,不幸的是我自己找不到该目录。我是否错误地使用了资源方法的URL,或者我是否只需要找到删除可选括号的方法?当我直接引用这个对象时,它可以工作,但我需要找到一种方法来创建我的队友也可以使用的路径。

override func setUp()
{
    super.setUp()
    let bundleURL = NSBundle.mainBundle().URLForResource("meetingexample", withExtension: "ics")
    let eventsFile = NSURL(fileURLWithPath: ("\(bundleURL)"))
    //let eventsFile = NSURL(fileURLWithPath: docFolderURL.URLByAppendingPathComponent("/meetingexample.ics"))
    content = try! String(contentsOfURL: eventsFile, encoding: NSUTF8StringEncoding)    
}

打印bundleURL:

可选(文件:/用户/ GB112922 /库/开发商/ CoreSimulator /设备/ EF6A2594-6B31-4E38-B46D-2F3AAAF25210 /数据/容器/捆绑/应用/ 35E04003-072F-476E- 957E-98C70B792539 / CallIn.app / meetingexample.ics)`

1 个答案:

答案 0 :(得分:1)

您有两个问题:

  1. "\(bundleURL)"正在NSURL额外文字中包含Optional(...)的值。
  2. URLForResource已经为您提供了NSURL。无需从中创建另一个NSURL
  3. 只需使用bundleURL即可。不需要eventsFile变量。

    override func setUp()
    {
        super.setUp()
        let bundleURL = NSBundle.mainBundle().URLForResource("meetingexample", withExtension: "ics")
        content = try! String(contentsOfURL: bundleURL, encoding: NSUTF8StringEncoding)    
    }