J'ai ce code (avec d'autres choses):
- (NSManagedObjectContext *) managedObjectContext
{
assert([NSThread isMainThread]);
if (_managedObjectContext != nil) {
return _managedObjectContext;
}
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator: coordinator];
}
return _managedObjectContext;
}
Ces lignes me donnent des erreurs que le message de classe est une déclaration en avant:
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator: coordinator];
Qu'est-ce que c'est et comment puis-je le réparer?
Vous devez importer CoreData/CoreData.h dans le fichier Supporting Files/YourApp-Prefix.pch:
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#endif
Par forward, la déclaration signifie que vous devez déclarer la classe par @Class
. Importez la classe dans le fichier .h/.m et espérez que le problème sera résolu.
Ajoutez ceci en haut de votre fichier .h ou .m
#import <CoreData/CoreData.h>
J'ai résolu le problème en important le fichier "import-Project-Name-Swift.h" #import de la classe Objective C qui utilise une classe Swift.
Je change le fichier DDXML.h et le travail.
Fichier: DDXML.h
Changement:
#if TARGET_OS_IPHONE && 0 // Disabled by default
À:
#if TARGET_OS_IPHONE && 1 // Disabled by default
Cela m’arrive fréquemment après avoir renommé une classe, puis oublié de mettre à jour @class myclass dans un fichier d’en-tête (ce qui ne provoque évidemment pas d’erreur de compilation).