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 Question オブジェクト) を含む 50 の質問を挿入するにはどうすればよいですか? 他の何かを使用する手動の方法はありますか?

4

4 に答える 4

1

CoreDataのラッパーである MagicalRecord は、優れたインポート機能を提供します。バンドルに plist/json としてインポートする必要があるデータを含める必要があります。

最初の実行では、データを coreData にインポートします。

次のリンクで同じことに関する優れたチュートリアルを見つけることができますImporting data made easy

NSManagedObject のサブクラスを作成する必要があります

importFromObject:またはを呼び出すことができますimportFromObject:。データの構造化を完全に制御できる場合、格納されたデータをコア データ エンティティにマッピングするコードを 1 つも書かなくても、すぐに使用できます。

于 2013-06-04T12:31:57.927 に答える
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

シード ストアが必要です。コア データ データベースを事前に入力してから、デバイスまたはシミュレーターのドキュメント ディレクトリから取得し、バンドルに追加します。最初の実行時に、バンドルからドキュメント ディレクトリにデータベースをコピーし、そのデータベースを使用します。

于 2013-06-04T12:42:18.803 に答える