在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;
}
答案 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;
}