我正在用swift编程语言开发一个应用程序.我使用的是XCode6 Beta4版本,所有的东西都运行得很顺利.我今天已经将版本更新到Beta5,我在核心数据对象上得到的错误是:
类型' NSManagedObjectContext'不符合协议' BooleanType'.
类型' NSManagedObjectModel'不符合协议' BooleanType'.
类型' NSPersistentStoreCoordinator'不符合协议' BooleanType'.
还附有错误的屏幕截图.

Kee*_*nle 14
实际上你得到的错误NSManagedObjectContext?,NSManagedObjectModel?并NSPersistentStoreCoordinator?没有确认BooleanType协议.请注意?类型名称末尾的问号.
所以你正在处理Optionals.由于Beta 5 Optionals不再符合BooleanType协议.
您需要nil明确检查,更改:
if !_managedObjectContext {
// ...
}
Run Code Online (Sandbox Code Playgroud)
至:
if _managedObjectContext == nil {
// ...
}
Run Code Online (Sandbox Code Playgroud)
做同样的_managedObjectModel和_persistentStoreCoordinator.
来自xCode 6 Beta 5发行说明:
现在可以使用==和!=将Optionals与nil进行比较,即使底层元素不是Equatable也是如此.
和
Optionals不再符合BooleanType(以前的LogicValue)协议,因此它们可能不再用于代替布尔表达式(它们必须与v!= nil明确比较).这解决了Bool的混乱局面?和相关类型,使代码更明确地说明预期的测试,并且与语言的其余部分更加一致.请注意,ImplicitlyUnwrappedOptional仍包含一些BooleanType功能.此问题将在未来的测试版中得到解决.
| 归档时间: |
|
| 查看次数: |
1326 次 |
| 最近记录: |