NSManagedObjectContext给出一个错误,询问“;”而且我不确定为什么

时间:2013-11-25 09:23:11

标签: ios core-data

在Xcode 5中,我使用下面的代码(位于@interface区域)从CoreData模型中获取数据。它告诉我,我应该在这里插入一个分号,

- (NSManagedObjectContext *)managedObjectContext;

任何帮助表示赞赏!

以下是我的完整代码块。

//Get Data     
- (NSManagedObjectContext *)managedObjectContext{
        NSManagedObjectContext *context = nil;
        id delegate = [[UIApplication sharedApplication] delegate];
        if ([delegate performSelector:@selector(managedObjectContext)]) {
            context = [delegate managedObjectContext];
        }
        return context;
    }

2 个答案:

答案 0 :(得分:2)

  

在Xcode 5中,我使用下面的代码(位于@interface区域)从CoreData模型中获取数据。

这是你的问题,你只应该在@interface中声明。实际实现在@implementation部分。

您的界面

@interface
- (NSManagedObjectContext *)managedObjectContext;
@end

实施中,您可以使用实际方法:

@implementation
...
//Get Data     
- (NSManagedObjectContext *)managedObjectContext{
        NSManagedObjectContext *context = nil;
        id delegate = [[UIApplication sharedApplication] delegate];
        if ([delegate respondsToSelector:@selector(managedObjectContext)]) {
            context = [delegate managedObjectContext];
        }
        return context;
    }
...
@end

更新:

感谢Abizern注意到您的代码中还有其他错误:行[delegate performSelector:@selector(managedObjectContext)]实际应该是[delegate respondsToSelector:@selector(managedObjectContext)],否则如果不回应选择器。

答案 1 :(得分:0)

在我看来,你有一种奇怪的吸气剂,尝试使用类似这样的东西

- (NSManagedObjectContext *)managedObjectContext {

     if (_managedObjectContext != nil)
     {
         return _managedObjectContext;
     }

     NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
     if (coordinator != nil)
     {
         _managedObjectContext = [[NSManagedObjectContext alloc] init];
         [_managedObjectContext setPersistentStoreCoordinator:coordinator];
     }
     return _managedObjectContext;
}