以下代码构建错误:
var err:NSError?
_persistentStore = _persistentStoreCoordinator!.addPersistentStoreWithType(
NSSQLiteStoreType,
configuration: nil,
URL: _coreDataPathURL,
options: nil,
error: err
)
构建错误:无法转换表达式的类型'()''NilLiteralConverible'?
_persistentStoreCoordinator是一个可选的var。
我不明白为什么构建错误?!
答案 0 :(得分:1)
问题是错误类型需要是NSErrorPointer
,即指向NSError?
的指针。
要隐式地将NSError?
转换为其中之一,您只需在&
前面加err
:
var err:NSError?
_persistentStore = _persistentStoreCoordinator!.addPersistentStoreWithType(
NSSQLiteStoreType,
configuration: nil,
URL: _coreDataPathURL,
options: nil,
error: &err // <--
)
(有关详细信息,请参阅the docs)
构建错误是因为Swift正在尝试使用NSError
的{{1}}初始值设定项,但失败了,因为它需要一种NilLiteralConvertible
作为其参数(小心,当Swift可以' t使任何可能的重载都起作用,它经常会给你一个关于一个特定可能性的编译器错误,这可能会产生误导。)