2

我想在 coredata ta 中插入 50 个值

 Question.h

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>


@interface Question : NSManagedObject

@property (nonatomic, retain) NSString * question;
@property (nonatomic, retain) NSString * answer;
@property (nonatomic, retain) NSString * mcqsa;
@property (nonatomic, retain) NSString * mcqsb;
@property (nonatomic, retain) NSString * mcqsc;
@property (nonatomic, retain) NSString * mcqsd;



Question.m
#import "Question.h"


@implementation Question

@dynamic question;
@dynamic answer;  
@dynamic mcqsa;
@dynamic mcqsb;
@dynamic mcqsc;
@dynamic mcqsd;

@end

插入代码

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

    NSManagedObjectContext *context = [self managedObjectContext];


    Question *question = [NSEntityDescription
                                  insertNewObjectForEntityForName:@"Question"
                                  inManagedObjectContext:context];
question.question = @"What is capital of Australia?";
question.answer = @"Testville";
question.mcqsa = @"Sydney";
question.mcqsb = @"Canbera";
question.mcqsc =  @"Berlin";
question.mcqsd = @"Bern";

NSError *error;
if (![context save:&error]) {
    NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
.......

如何使用他们的 mcqs(50 个问题对象)插入多个数据、50 个问题?有没有使用其他东西的手动方式?

4

4 回答 4

1

MagicalRecord是 CoreData的包装器,提供了一些不错的导入功能。您需要在包中包含需要作为 plist/json 导入的数据。

在初始运行时,您将数据导入 coreData。

您可以在以下链接中找到有关相同内容的精彩教程Importing data made easy

您需要创建 NSManagedObject 的子类

在他们身上你可以打电话importFromObject:importFromObject:。如果您对数据的结构有完全的控制权,这将发生在开箱即用的情况下,而无需编写用于将存储的数据映射到核心数据实体的单个代码。

于 2013-06-04T12:31:57.927 回答
0

您需要一个种子存储,预填充核心数据数据库,然后从设备或模拟器文档目录中获取它,然后将其添加到您的包中。在第一次运行时,您会将数据库从 bundle 复制到 Document 目录并继续使用该数据库

于 2013-06-04T12:42:18.803 回答
0

您可以使用 for 循环插入数据。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
 {
for(i=0; i<50; i++) {
    NSManagedObjectContext *context = [self managedObjectContext];


    Question *question = [NSEntityDescription
                                  insertNewObjectForEntityForName:@"Question"
                                  inManagedObjectContext:context];
question.question = @"What is capital of Australia?";
question.answer = @"Testville";
question.mcqsa = @"Sydney";
question.mcqsb = @"Canbera";
question.mcqsc =  @"Berlin";
question.mcqsd = @"Bern";

NSError *error;
if (![context save:&error]) {
    NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
.......
}
于 2013-06-04T12:48:11.273 回答
0

在此处输入图像描述这是代码:

  NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"QuesList" ofType:@"plist"];


   NSArray *quesList = [[NSArray alloc]initWithContentsOfFile:plistPath];


    for(NSDictionary *object in quesList){


NSString *str1 = [object objectForKey:@"question"];
NSString *str2 = [object objectForKey:@"answer"];
NSString *str3 = [object objectForKey:@"mcqsa"];
NSString *str4 = [object objectForKey:@"mcqsb"];
NSString *str5 = [object objectForKey:@"mcqsc"];



 Question *question = [NSEntityDescription
                          insertNewObjectForEntityForName:@"Question"
                          inManagedObjectContext:context];
question.question = str1;
question.answer =str2;
question.mcqsa =str3;
question.mcqsb =str4;
question.mcqsc =  str5;

  }

还要确保只运行此代码一次,否则它会创建重复的对象

于 2013-06-04T12:59:02.330 回答