我正在用swift
编程语言开发应用程序。我使用的是XCode6 Beta4版本,所有事情都运行顺利且良好。我今天已将版本更新为Beta5,并且遇到以下核心数据对象错误:
类型' NSManagedObjectContext
'不符合协议' BooleanType
'。
类型' NSManagedObjectModel
'不符合协议' BooleanType
'。
类型' NSPersistentStoreCoordinator
'不符合协议' BooleanType
'。
错误的屏幕快照也已随附。
实际上您收到的错误NSManagedObjectContext?
,NSManagedObjectModel?
并且NSPersistentStoreCoordinator?
未对BooleanType
协议进行确认。注意?
类型名称末尾的问号。
So you are dealing with Optionals. Since Beta 5 Optionals does not conform to BooleanType
protocol anymore.
You need to check for nil
explicitly, change:
if !_managedObjectContext {
// ...
}
to:
if _managedObjectContext == nil {
// ...
}
And do the same for _managedObjectModel
and _persistentStoreCoordinator
.
From xCode 6 Beta 5 Release Notes:
Optionals can now be compared to nil with == and !=, even if the underlying element is not Equatable.
and
可选参数不再符合BooleanType(以前的LogicValue)协议,因此它们可能不再用于代替布尔表达式(必须将它们与v!= nil进行显式比较)。这解决了围绕布尔的困惑吗?以及相关类型,使代码对期望的测试更加明确,并且与语言的其余部分更加一致。请注意,ImplicitlyUnwrappedOptional仍包含一些BooleanType功能。此问题将在以后的Beta中解决。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句