Xcode 4 CoreData可视化设置数据

时间:2011-04-15 12:40:51

标签: ios core-data xcode4

我正在使用xcode 4,我已经创建了一个CoreData模型。我想知道是否可以将数据插入到xcode中的实体中。

请不要告诉我将数据输入模型的唯一方法是以编程方式。

干杯

3 个答案:

答案 0 :(得分:3)

Ray Wenderlich使用Python脚本填充数据库,提供How to Preload/Import Existing Data的教程。

他关于Core Data的三部曲系列内容非常丰富。

答案 1 :(得分:2)

您无法直接使用XCode输入数据。如果您不想使用代码执行此操作,则可以预填充数据库。在SO上查看this Q&A

答案 2 :(得分:0)

这是一个非常慢的过程,但您可以填充核心数据。

在appDelegate.m中插入以下代码

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
   ...

    //test
    //writing data

        NSManagedObjectContext *context = [self managedObjectContext];
        NSManagedObject *model = [NSEntityDescription insertNewObjectForEntityForName:@"Invitados" inManagedObjectContext:context];
        [model setValue:@"Alicia" forKey:@"name"];
        [model setValue:@"Sanchez" forKey:@"firstname"];
        [model setValue:@"Romero" forKey:@"secondname"];


        NSError *error;
        if (![context save:&error]) {
            NSLog(@"Couldn't save: %@", [error localizedDescription]);
        }
        //retrieving data
        // NSManagedObjectContext *context = [self managedObjectContext];
        //NSError *error;

        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        NSEntityDescription *entity = [NSEntityDescription  entityForName:@"Invitados" inManagedObjectContext:context];
        [fetchRequest setEntity:entity];

        NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];

        for (NSManagedObject *get in fetchedObjects) {
            NSLog(@"Nombre: %@", [get valueForKey:@"name"]);
            NSLog(@"Apellido 1: %@", [get valueForKey:@"firstname"]);
            NSLog(@"Apellido 2: %@",[get valueForKey:@"secondname"]);
        }
        // End test