如何摆脱协议中找不到的'-managedObjectContext'

Mad*_*APP 2 delegates nsmanagedobjectcontext ios4

我的应用程序在iPhone设备上运行,也在模拟器中运行.Everythings似乎很好,但我在构建期间看到编译器警告.我讨厌提供不完全正确的代码,所以我需要摆脱这个警告.编译器警告是:

newsReaderController.m:24:警告:在协议中找不到'-managedObjectContext'

守则是:

- (void)viewDidLoad {
    [super viewDidLoad];
    //CORE DATA
    if (managedObjectContext == nil) { 
    managedObjectContext = [[[UIApplication sharedApplication] delegate] managedObjectContext]; 
    }
}
Run Code Online (Sandbox Code Playgroud)

CoreData操作的managedObjectContext在App Delegate中设置.核心数据框架是重要的,应用程序就像一个魅力.

有什么暗示吗?我现在正在使用Objective-C几周,但似乎每天都有新的东西要学习:)

Jus*_*ers 8

由于-[UIApplication delegate]返回类型的对象id<UIApplicationDelegate>,编译器抱怨该-managedObjectContext协议中不存在任何方法.它就在那里,你知道它就在那里,所以你可以通过强制转换为你的委托的特定类型(MyAppDelegate或者它可能被称为的任何类型)来解决这个问题,或者通过强制转换为id:

 id appDelegate = (id)[[UIApplication sharedApplication] delegate];
 managedObjectContext = [appDelegate managedObjectContext];
Run Code Online (Sandbox Code Playgroud)