我有这段代码:
public class Foo {
init?() {
do {
let sd = FileManager.default.temporaryDirectory.appendingPathComponent("bar")
let ressourceValues = try sd.resourceValues(forKeys: [.isDirectoryKey])
if let isDirectory = ressourceValues.isDirectory {
if isDirectory {
self.something = sd
} else {
return nil
}
} else {
try FileManager.default.createDirectory(atPath: sd.path, withIntermediateDirectories: false, attributes: nil)
}
} catch {
return nil
}
}
public static let `default`: Foo? = Foo()
var something: URL
}
我在init?
行上收到此错误:
变量' self.something'在初始化之前使用
然而,我还没有看到我在初始化器中使用它的任何地方。
出了什么问题?
谢谢
答案 0 :(得分:1)
由于something
不是可选的,因此必须使用非零值初始化它。如果没有初始化init
,您的something
可能会成功。