4

既存のプロジェクトがあり、CoreData を使用したいと考えています。

プロジェクトの作成時に、はすでに私のグループのCoreData.framework下に追加されており、プロジェクトのターゲット -> ビルド フェーズの下にあります。このプロジェクトを作成したとき、「コア データを使用する」をチェックしませんでした。チェック ボックスさえありませんでした。単に私のプロジェクトにあっただけです。Xcode バージョン 4.6.3 を使用しています。FrameworksLink Binary With Libraries

チュートリアルを読んで、私は my に行き、App-Prefix.pchCoreData へのインポートを追加しました。次のようになります。

#import <Availability.h>

#ifndef __IPHONE_5_0
#warning "This project uses features only available in iOS SDK 5.0 and later."
#endif

#ifdef __OBJC__
    #import <UIKit/UIKit.h>
    #import <CoreData/CoreData.h>
    #import <Foundation/Foundation.h>
#endif

次に、次を my に追加しましたAppDelegate.h

@property (readonly, nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@property (readonly, nonatomic, strong) NSManagedObjectModel *managedObjectModel;
@property (readonly, nonatomic, strong) NSPersistentStoreCoordinator *persistentStoreCoordinator;

- (void)saveContext;

そして今、getter for をオーバーライドするとmanagedObjectContext、Xcode はエラーをスローします。

宣言されていない識別子 '_managedObjectContext' の使用。「NSManagedObjectContext」のことですか?

これは私のゲッターメソッドですAppDelegate.m:

- (NSManagedObjectContext *)managedObjectContext {
    if(_managedObjectContext != nil)
        return _managedObjectContext;

    NSPersistentStoreCoordinator* psc = [self persistentStoreCoordinator];

    if(psc != nil)
    {
        _managedObjectContext = [[NSManagedObjectContext alloc] init];
        [_managedObjectContext setPersistentStoreCoordinator:psc];
    }

    return _managedObjectContext;
}

また、コピー バンドル リソースに .pch ファイルを入れようとしましたが、役に立ちませんでした。ヘルプ?

4

2 に答える 2

1

実装する読み取り専用プロパティの場合、コンパイラによって作成された Ivar はありません。変数を宣言する

NsmanagedObjectContext *_managedObjectContext;

于 2013-08-08T07:35:18.007 に答える