2017-07-12 1 views
0

Ici, dans mes données de base deux entité Resgistration & Unique et le nom de la relation est roshan, la relation est un à un. J'essaie d'insérer des données mais le code est si long que quelqu'un aide à créer un code court pour effectuer des données d'insertion dans les données de base.insérer des données dans les données de base

- (IBAction)submitData:(id)sender { 
    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

    NSManagedObjectContext *context = [appDelegate manageObjectContext]; 
    Resgistration *newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Resgistration" inManagedObjectContext:context]; 
    //newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Resgistration" inManagedObjectContext:context]; 
    Unique *number = [NSEntityDescription insertNewObjectForEntityForName:@"Unique" inManagedObjectContext:context]; 

    //number = [NSEntityDescription insertNewObjectForEntityForName:@"Unique" inManagedObjectContext:context]; 

    [number setValue:_numberText.text forKey:@"number"]; 
    [number setValue:_studyText.text forKey:@"study"]; 
    NSMutableSet *roshanSet = [[NSMutableSet alloc] init]; 
    [roshanSet addObject:number]; 
    [newContact addRoshan:roshanSet]; 
    [newContact setValue:number forKey:@"roshan"]; 
    //[newContact setValue:_numberText.text forKey:@"number"]; 
    [newContact setValue:_nameText.text forKey:@"name"]; 
    [newContact setValue:_addressText.text forKey:@"address"]; 
    [newContact setValue:_emailText.text forKey:@"email"]; 
    [newContact setValue:_othernoText.text forKey:@"otheNo"]; 
    [newContact setValue:_hobbyText.text forKey:@"hobby"]; 
    [newContact setValue:_contactText.text forKey:@"contact"]; 
    NSError *error; 
    [context save:&error]; 

    _nameText.text = @""; 
    _addressText.text = @""; 
    _emailText.text = @""; 
    _othernoText.text = @""; 
    _hobbyText.text = @""; 
    _contactText.text = @""; 
    _numberText.text = @""; 

    TableViewController *table = [self.storyboard instantiateViewControllerWithIdentifier:@"TableViewController"]; 
    [self.navigationController pushViewController:table animated:YES]; 
} 

unique + CoreDataClass.h

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

@class Resgistration; 

NS_ASSUME_NONNULL_BEGIN 

@interface Unique : NSManagedObject 

@end 

NS_ASSUME_NONNULL_END 

#import "Unique+CoreDataProperties.h" 

unique + CoreDataClass.m

#import "Unique+CoreDataClass.h" 
#import "Resgistration+CoreDataClass.h" 
@implementation Unique 

@end 

+ CoreDataClass.h carte grise

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

@class Unique; 

NS_ASSUME_NONNULL_BEGIN 

@interface Resgistration : NSManagedObject 

@end 

NS_ASSUME_NONNULL_END 

#import "Resgistration+CoreDataProperties.h" 

+ CoreDataClass.m

carte grise
#import "Resgistration+CoreDataClass.h" 
#import "Unique+CoreDataClass.h" 
@implementation Resgistration 

@end 
+0

publier votre unique et les classes Resgistration code – ddb

+0

c'est ma sous-classe NSMAnagedObject. Vérifiez le code mis à jour. –

Répondre

0

Voici comment vous devriez le faire juste un peu mieux, mais vous devez d'abord ajouter ces propriétés dans la définition de classe pour la carte grise et unique, comme vous l'avez fait dans le modèle de données de base

- (IBAction)submitData:(id)sender { 
    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate]; 

    NSManagedObjectContext *context = [appDelegate manageObjectContext]; 
    Resgistration *newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Resgistration" inManagedObjectContext:context]; 
    //newContact = [NSEntityDescription insertNewObjectForEntityForName:@"Resgistration" inManagedObjectContext:context]; 
    Unique *number = [NSEntityDescription insertNewObjectForEntityForName:@"Unique" inManagedObjectContext:context]; 

    //number = [NSEntityDescription insertNewObjectForEntityForName:@"Unique" inManagedObjectContext:context]; 

    number.number = _numberText.text; 
    number.study = _studyText.text; 
    NSMutableSet *roshanSet = [[NSMutableSet alloc] init]; 
    [roshanSet addObject:number]; 
    [newContact addRoshan:roshanSet]; 
    newContact.roshan = number; 
    newContact.name = _nameText.text; 
    newContact.address = _addressText.text; 
    newContact.email = _emailText.text; 
    newContact.otheNo = _othernoText.text; 
    newContact.hobby = _hobbyText.text; 
    newContact.contact = _contactText.text; 
    NSError *error; 
    [context save:&error]; 

    if(error == nil) 
    { 
     _nameText.text = @""; 
     _addressText.text = @""; 
     _emailText.text = @""; 
     _othernoText.text = @""; 
     _hobbyText.text = @""; 
     _contactText.text = @""; 
     _numberText.text = @""; 

     TableViewController *table = [self.storyboard instantiateViewControllerWithIdentifier:@"TableViewController"]; 
     [self.navigationController pushViewController:table animated:YES]; 
    } 
    else 
    { 
     NSLog("error") 
    } 
} 
+0

un moyen facile d'un petit code possible. –

+0

chaque déclaration est nécessaire, pas de manière magique de réduire le code, vous pouvez simplifier les déclarations de cette façon – ddb

+0

ohk. Merci mec. –