2010-11-30 9 views
2

私のアプリはiPhoneデバイスとシミュレータ上で動作します。 Everythingsはうまく見えますが、ビルド中にコンパイラの警告が表示されます。私はこの警告を取り除く必要があるので、完全には正しくないコードを提供することは嫌いです。コンパイラの警告がある:プロトコルで見つからない「-managedObjectContext」を取り除くには

newsReaderController.m:24:警告:(S)プロトコルに見つかりません '-managedObjectContext'

コードは次のとおり

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

CoreData操作用managedObjectContextが設定されていますApp Delegateでアップ。コアデータフレームワークはimportetで、アプリは魅力的に機能します。

私にはどんなヒントですか?私は今、数週間のためのObjective-Cで働いていますが、毎日:)

答えて

8

を学ぶために新しい何かがあるように思わ-[UIApplication delegate]はタイプid<UIApplicationDelegate>のオブジェクトを返すので、コンパイラは-managedObjectContext方法は1つに存在しないことを不平を言っていますプロトコル。あなたは、デリゲートの特定のタイプ(MyAppDelegateまたは何でもそれが呼ばれることもある)にキャストすることによってこの問題を解決するため、またはidにキャストすることができますので、それはそこだし、あなたはそれがあります知っている:

id appDelegate = (id)[[UIApplication sharedApplication] delegate]; 
managedObjectContext = [appDelegate managedObjectContext]; 
+0

ナイス!今日の先生に感謝しています!これは魅力のように機能します! – MadMaxAPP

+0

NSApplicationでも動作します。ありがとう! –

関連する問題