0

これは私のデリゲートです.m

#import "TestSaveDataAppDelegate.h"

#import "TestSaveDataViewController.h"

@implementation TestSaveDataAppDelegate

@synthesize window = _window;
@synthesize viewController = _viewController;
@synthesize managedObjectContext = __managedObjectContext;
@synthesize managedObjectModel = __managedObjectModel;
@synthesize persistentStoreCoordinator = __persistentStoreCoordinator;

これは私の NSManagedObjectContext です

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

    NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
    if (coordinator != nil) {
        __managedObjectContext = [[NSManagedObjectContext alloc] init];
        [__managedObjectContext setPersistentStoreCoordinator:coordinator];
    }
    return __managedObjectContext;
}

これは私の NSManagedObjectModel です

- (NSManagedObjectModel *)managedObjectModel
{
    if (__managedObjectModel != nil) {
        return __managedObjectModel;
    }    
    __managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
    return __managedObjectModel;
}

これは私の NSPersistentStoreCoordinator です

- (NSPersistentStoreCoordinator *)persistentStoreCoordinator
{
    if (__persistentStoreCoordinator != nil) {
        return __persistentStoreCoordinator;
    }

    NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"SaveData.sqlite"];

    NSError *error = nil;
    __persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
    if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) {
        NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
        abort();
    }    
    return __persistentStoreCoordinator;
}

私のTestSaveDataViewController.hiインポートでは、私のModel.xcdatamodeld内のエンティティ名がSavedataであるのと同じように、私のSavedata.hの名前を正確にインポートします。ここの属性は、文字列型のsaveslot1です。

私のTestSaveDataViewController.mで

@synthesize managedObjectContext;

私はこのようなボタンを持っています

- (IBAction)button1:(id)sender
{
    // save text in textfield
    Savedata *savedata = (Savedata *)[NSEntityDescription insertNewObjectForEntityForName:@"Savedata" inManagedObjectContext:managedObjectContext];
    [savedata setSaveslot1:label1.text];    
    NSError *error;
    if (![managedObjectContext save:&error]) {
        // This is a serious error saying the record could not be saved.
        // Advise the user to restart the application
    }
}

ボタンを押すと、テキストフィールドのテキストが保存され、label1.text が表示されますが、このエラーが発生しました。

+entityForName: could not locate an NSManagedObjectModel for entity name 'Savedata''

それを修正する方法は?

4

1 に答える 1

0

私はすでに私の問題を解決しています。委任するのを忘れていました。今では動作します。

于 2012-07-21T13:16:58.727 に答える