Ответ 1
Вы должны импортировать CoreData/CoreData.h в файл Supporting Files/YourApp-Prefix.pch:
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#endif
У меня есть этот код (наряду с другими вещами):
- (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;
}
Эти строки дают мне ошибки, что сообщение класса является объявлением вперед:
_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator: coordinator];
Что это такое и как его исправить?
Вы должны импортировать CoreData/CoreData.h в файл Supporting Files/YourApp-Prefix.pch:
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#endif
В результате форвардной декларации вы должны объявлять класс @Class
. Импортируйте класс в файл .h/.m и надейтесь, что он решит проблему.
Добавьте это в начало файла .h или .m
#import <CoreData/CoreData.h>
Я решил проблему, импортировав файл #import "Project-Name-Swift.h" в классе Objective C, который использует класс Swift.
Измените файл DDXML.h и Work.
Файл: DDXML.h
Изменить:
#if TARGET_OS_IPHONE && 0 // Disabled by default
To:
#if TARGET_OS_IPHONE && 1 // Disabled by default
Это часто происходит со мной после переименования класса, а затем забывает обновить @class myclass в файле заголовка (который, очевидно, не будет вызывать ошибку компиляции.)