接收方类型是前向声明

cdu*_*dub 18 core-data objective-c ios ios7

我有这个代码(以及其他东西):

- (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;
}
Run Code Online (Sandbox Code Playgroud)

这些行给了我错误,类消息是一个前向声明:

_managedObjectContext = [[NSManagedObjectContext alloc] init];
[_managedObjectContext setPersistentStoreCoordinator: coordinator];
Run Code Online (Sandbox Code Playgroud)

这是什么,我该如何解决?

小智 37

您必须在Supporting Files/YourApp-Prefix.pch文件中导入CoreData/CoreData.h:

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
    #import <CoreData/CoreData.h>
#endif
Run Code Online (Sandbox Code Playgroud)


Jam*_*far 11

通过前瞻宣言意味着你必须宣布上课@Class .导入.h/.m文件中的类,希望它能解决问题.


Yup*_*up. 5

将其添加到.h或.m文件的顶部

#import <CoreData/CoreData.h>
Run Code Online (Sandbox Code Playgroud)