Estoy desarrollando una aplicación en swift
lenguaje de programación. Estaba usando la versión XCode6 Beta4 y todas las cosas estaban funcionando sin problemas y bien. Actualicé la versión a Beta5 hoy y recibo errores en los objetos de datos centrales que son:
El tipo " NSManagedObjectContext
no se ajusta al protocolo BooleanType
".
El tipo " NSManagedObjectModel
no se ajusta al protocolo BooleanType
".
El tipo " NSPersistentStoreCoordinator
no se ajusta al protocolo BooleanType
".
También se adjunta una captura de pantalla de los errores.
En realidad, usted está recibiendo el error NSManagedObjectContext?
, NSManagedObjectModel?
y NSPersistentStoreCoordinator?
no confirma al BooleanType
protocolo. Observe el ?
signo de interrogación al final del nombre del tipo.
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
Los opcionales ya no se ajustan al protocolo BooleanType (antes LogicValue), por lo que ya no pueden usarse en lugar de expresiones booleanas (deben compararse explícitamente con v! = Nil). ¿Esto resuelve la confusión en torno a Bool? y tipos relacionados, hace que el código sea más explícito sobre qué prueba se espera y es más consistente con el resto del lenguaje. Tenga en cuenta que ImplicitlyUnwrappedOptional todavía incluye algunas funciones de BooleanType. Este problema se resolverá en una versión beta futura.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras