可选类型'字符串的值?'还没打开?

时间:2014-12-04 15:18:59

标签: xcode swift

我不确定错误是什么以及我需要做些什么来解决它? 我试过用这两个!和?。

代码:

var sceneData = NSData.dataWithContentsOfFile(path, options: .DataReadingMappedIfSafe, error: nil)

由于 < 3

2 个答案:

答案 0 :(得分:1)

我认为path是一个可选字符串(声明为String?),因此您必须在将其提供给方法之前将其解包。最安全的方法是使用可选绑定:

if let path = path {
    var sceneData = NSData.dataWithContentsOfFile(path, options: .DataReadingMappedIfSafe, error: nil)
}

但据我所知,dataWithContentsOfFile方法不可用 - 您应该使用对象初始化对应方式:

if let path = path {
    var sceneData = NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe, error: nil)
}

答案 1 :(得分:0)

或者,当您确定它不能为空时,您可以使用!自动解包您的可选项。

var sceneData = NSData.dataWithContentsOfFile(path!, options: .DataReadingMappedIfSafe, error: nil)