Showing posts with label Core Data related.... Show all posts
Showing posts with label Core Data related.... Show all posts

3 Jan 2017

Core Data XCode8.0 & later, ios 10.0 & later version...



Core Data Xcode 8.0 & later, ios 10.0 & later version ...


@property AppDelegate *appDelg;

@property NSEntityDescription *enterTextED;


- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
   _appDelg = (AppDelegate *)[[UIApplication sharedApplication]delegate];
   _enterTextED = [NSEntityDescription entityForName:@"Data" inManagedObjectContext:_appDelg.persistentContainer.viewContext];

}


// To Save Data

-(void) SaveData {


 _appDelg = (AppDelegate *)[[UIApplication sharedApplication]delegate];

   _enterTextED = [NSEntityDescription entityForName:@"Data" inManagedObjectContext:_appDelg.persistentContainer.viewContext];

 NSManagedObject *managedObject = [[NSManagedObject alloc]initWithEntity:_enterTextED insertIntoManagedObjectContext:_appDelg.persistentContainer.viewContext];
        [managedObject setValue:_enterTextTF.text forKey:@"enterText"];
        
    NSError *errorObj;

    [_appDelg.persistentContainer.viewContext save:&errorObj];

}

// To Fetch Data

-(void) FetchData {

_appDelg = (AppDelegate *)[[UIApplication sharedApplication]delegate];
    
    NSFetchRequest * fetchReq = [NSFetchRequest fetchRequestWithEntityName:@"Data"];
    NSError * fetchErrorObj;
    storedData = [_appDelg.persistentContainer.viewContext executeFetchRequest:fetchReq error:&fetchErrorObj];
    NSLog(@"array count is %lu",storedData.count);

}

Core Data Xcode below 8.0 Version Save & Fetch


Core Data Xcode below 8.0 Version Save & Fetch...


@property AppDelegate *appDelg;
@property NSEntityDescription *namesED;


@implementation enterDataViewController


- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.appDelg = (AppDelegate *)[[UIApplication sharedApplication]delegate];

    self.namesED = [NSEntityDescription entityForName:@"Name" inManagedObjectContext:self.appDelg.managedObjectContext];
}

- (void)saveData {
    
    NSManagedObject *managedObject = [[NSManagedObject alloc]initWithEntity:self.namesED insertIntoManagedObjectContext:self.appDelg.managedObjectContext];
    [managedObject setValue:self.enterText.text forKey:@"enterName"];
    
    NSError *errorObj;
    [self.appDelg.managedObjectContext save:&errorObj];
    
    if (errorObj) {
        UIAlertController *alertCon = [UIAlertController alertControllerWithTitle:@"Error" message:@"Error Occured" preferredStyle:UIAlertControllerStyleAlert];
        UIAlertAction *alertAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil];
        [alertCon addAction:alertAction];
    }
    else {
        NSLog(@"Saved successfully..");
    }
    TableViewController *viewC = [self.storyboard instantiateViewControllerWithIdentifier:@"TableViewControllerID"];
    [self.navigationController pushViewController:viewC animated:YES];
}

- (IBAction)getStoredData:(id)sender
{
    
    NSFetchRequest * fetReq = [NSFetchRequest fetchRequestWithEntityName:@"Name"];
    
    NSError * fetchErrorObj;
    NSArray * storedData = [self.appDelg.managedObjectContext executeFetchRequest:fetReq error:&fetchErrorObj];
    NSLog(@"array count is %lu",storedData.count);
    
    for (int i=0; i<storedData.count; i++)
    {
        NSManagedObject * storedManagedObj = [storedData objectAtIndex:i];
        
        if ([[storedManagedObj valueForKey:@"enterName"] isEqualToString:self.enterText.text]) {
            NSLog(@"enterName is %@",[storedManagedObj valueForKey:@"enterName"]);
            
            NSString *savedDataStr = [storedManagedObj valueForKey:@"enterName"];
            _savedDataLbl.text = savedDataStr;
            
            NSMutableArray *array = [NSMutableArray array];
            for (int i = 0; i < [savedDataStr length]; i++) {
                NSString *ch = [savedDataStr substringWithRange:NSMakeRange(i, 1)];
                [array addObject:ch];
                
            }
            NSLog(@"arr -- %@",array);
        }
    }
 }

@end

Updating the Existed Entities And Attributes Core Data in Xcode below 8.0 and Xcode 8.0 & Later versions


Updating the Existed Core Data in Xcode below 8.0...


NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *sysCounters = [NSEntityDescription entityForName:@ProfileinManagedObjectContext:managedObjectContext];
[request setEntity:sysCounters];

NSPredicate *predicate = [NSPredicate predicateWithFormat:@(p_roomName = %@)",editProfileForString];
[request setPredicate:predicate];

NSError *error = nil;
NSArray *results = [managedObjectContext executeFetchRequest:request error:&error];
for (NSManagedObject *obj in results) {
[obj setValue:txtfDescription.text forKey:@p_description];
[obj setValue:txtfRoomName.text forKey:@p_roomName];
[obj setValue:txtfIp.text forKey:@p_ip];
[obj setValue:txtfPort.text forKey:@p_port];
[obj setValue:txtfUsername.text forKey:@p_username];
[obj setValue:txtfPassword.text forKey:@p_password];
[managedObjectContext save:&error];
}



//Updating the ExistedCore Data in Xcode 8.0 & Later versions


NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *data = [NSEntityDescription entityForName:@"Data" inManagedObjectContext:_appDelg.persistentContainer.viewContext];
    [request setEntity:data];
    
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(enterText = %@)",beforeUpdateString];
    [request setPredicate:predicate];
                              
    NSError *error = nil;
    NSArray *results = [_appDelg.persistentContainer.viewContext executeFetchRequest:request error:&error];
    for (NSManagedObject *tempObj in results) {
     [tempObj setValue:_editablePositionString forKey:@"enterText"];
                                  
//   [obj setValue:txtfRoomName.text forKey:@p_roomName];
//   [obj setValue:txtfIp.text forKey:@p_ip];
//   [obj setValue:txtfPort.text forKey:@p_port];
//   [obj setValue:txtfUsername.text forKey:@p_username];
//   [obj setValue:txtfPassword.text forKey:@p_password];
                                  
    [_appDelg.persistentContainer.viewContext save:&error];
       
  }

    


Recent Posts

Codable demo

Link: https://www.dropbox.com/s/kw7c1kgv1628bh7/codableDemo.zip?dl=0