2013-06-04 30 views
2

我想插入coredata 50個值TA插入50名對象中CoreData表

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]); 
} 
....... 

我如何可以插入多個數據,用自己多選題第50題(50題對象)? 是否有任何使用別的手動方式?

回答

1

MagicalRecord CoreData的包裝提供了一些很好的導入功能。你需要在bundle中包含你需要導入的數據作爲plist/json。

在初始運行時,您將數據導入到coreData。

您可以在以下鏈接Importing data made easy

您需要創建NSManagedObject

他們的子類可以調用importFromObject:importFromObject:找到相同很大的教程。如果您完全控制了數據的結構,那麼這將會在沒有寫入單個代碼的情況下發生,從而無法映射存儲到核心數據實體的數據。

0

您需要一個種子商店,預填充核心數據庫,然後從設備或模擬器文檔目錄中獲取它,然後將其添加到您的包中。在第一次運行時,您會將數據庫從數據包複製到Document目錄,並使用該數據庫向前

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]); 
} 
....... 
} 
+0

是不是應該去保存相同的數據? –

+1

您可以添加動態數據,並在循環結束時將50個記錄添加到您的數據庫。 –

0

enter image description here下面是代碼:

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; 

    } 

而且

還要確保在運行此代碼只有一次,否則它woudld創建的副本對象