0

「usecoredata」オプションを設定してプロジェクトを設定しました。

XCodeは明らかにこれらすべてを自動的に設定し、アプリデリゲートヘッダーファイルに次の行があります。

@interface GFree2AppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
    GFree2ViewController *viewController;
    UINavigationController *navController;

    NSManagedObjectContext *managedObjectContext_;
    NSManagedObjectModel *managedObjectModel_;
    NSPersistentStoreCoordinator *persistentStoreCoordinator_;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;
@property (nonatomic, retain) IBOutlet GFree2ViewController *viewController;
@property (nonatomic, retain) IBOutlet UINavigationController *navController;

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

- (NSString *)applicationDocumentsDirectory;

@end

私の最初の質問は、管理対象オブジェクトなどの最初のポインターにアンダースコアが付いているのはなぜですか?これは、.mファイルでの使用方法ですが、@propertysにはアンダースコアがありません。

次の質問は、スクリプトでコンテキストをさらに使用したいので、次の行を使用しました。

GFree2AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
context = delegate.managedObjectContext;

obvsには@synthesizeがないため、これは機能しません。しかし、何を合成する必要がありますか?アンダースコア付きで合成しますか、それともなしで合成しますか?delegate.managedObjectContextまたはdelegate.managedObjectContext_?またはまったくない?Ha..この管理対象オブジェクトのすべてを理解しているのかよくわかりません。

どうもありがとう。トム

4

1 に答える 1

0

アンダースコアは単なる設定スタイルです。アンダースコアを使用して、または使用せずに合成できます(ただし、宣言されたプロパティと異なる場合は、getter=managedObjectContextたとえば、プロパティ宣言で正しい名前を指定する必要があります。

于 2010-08-28T13:01:24.550 に答える