Tuesday, July 30, 2013

Core Data Tute 2 (Add / Delete / Search)

Core Data Tute 2 (Add / Delete / Search)




Step 1
Create a project like previous tutorial .... 


Step 2

Create Entity & Attribute   like this...



Step 3

Add new Class call "ViewController" Class with ".xib" like Previous tutorial 

and Design this UI in ViewControler.xib




Step 4
change the code in "ViewController.h" class . 


#import <UIKit/UIKit.h>

@interface ViewController : UIViewController<UITextFieldDelegate>


@property (weak, nonatomic) IBOutlet UITextField *studentNoTextField;
@property (weak, nonatomic) IBOutlet UITextField *studentNameTextField;
@property (weak, nonatomic) IBOutlet UILabel *displayLable;


- (IBAction)add:(id)sender;
- (IBAction)search:(id)sender;
- (IBAction)deleteStudent:(id)sender;

@end
------------------------------------------------------------------------------------------------------------------------
Step 5

Change the code in  "ViewController.m" class. In here You have to Import AppDelegate class

#import "ViewController.h"
#import "AppDelegate.h"

@interface ViewController ()
{
NSManagedObjectContext *context;
}

@end

@implementation ViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}

// for hide the key board-----------------------------------
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
return [textField resignFirstResponder];
}


- (IBAction)add:(id)sender {

NSEntityDescription *entityDes=
[NSEntityDescription entityForName:@"Student" inManagedObjectContext:context];

NSManagedObject *newStudent =
[[NSManagedObject alloc]initWithEntity:entityDes insertIntoManagedObjectContext:context];

[newStudent setValue:self.studentNameTextField.text forKey:@"studentName"];
[newStudent setValue:self.studentNoTextField.text forKey:@"studentNo"];

NSError *error;
[context save:&error];

self.displayLable.text=@"Student Added";

_studentNoTextField.text=@"";
_studentNameTextField.text=@"";

}


- (IBAction)deleteStudent:(id)sender{

NSEntityDescription *entityDes=
[NSEntityDescription entityForName:@"Student" inManagedObjectContext:context];

NSFetchRequest *request=[[NSFetchRequest alloc]init];
[request setEntity:entityDes];

//we use "==" to get exact match-------------------------------------------------

NSPredicate *predicate=[NSPredicate predicateWithFormat:@"studentNo == %@",self.studentNoTextField.text];
[request setPredicate:predicate];
NSError *error;


NSArray *machingData=[context executeFetchRequest:request error:&error];

if(machingData.count<=0)
{
self.displayLable.text=@"No Student Deleted";
}

else{

// int count=0;
for(NSManagedObject *obj in machingData){
[context deleteObject:obj];
//++count;
}

[context save:&error];
// self.displayLable.text=[NSString stringWithFormat:@"%d Student deleted : ",count];
self.displayLable.text=[NSString stringWithFormat:@"Student deleted"];
}

}

- (IBAction)search:(id)sender {

NSEntityDescription *entityDes=
[NSEntityDescription entityForName:@"Student" inManagedObjectContext:context];

NSFetchRequest *request=[[NSFetchRequest alloc]init];
[request setEntity:entityDes];

//we use "==" to get exact match-------------------------------------------------

NSPredicate *predicate=[NSPredicate predicateWithFormat:@"studentNo == %@",self.studentNoTextField.text];

[request setPredicate:predicate];

NSError *error;

NSArray *machingData=[context executeFetchRequest:request error:&error];

if(machingData.count<=0)
{
self.displayLable.text=@"No Person Found";
}
else{
NSString *sno;
NSString *sName;
for(NSManagedObject *obj in machingData){
sno=[obj valueForKey:@"studentNo"];
sName=[obj valueForKey:@"studentName"];
}

self.displayLable.text=[NSString stringWithFormat:@"Student No : %@ , Student Name : %@ ",sno,sName];
NSLog(@"display :studentNo %@ ,studentName %@ ",sno,sName);

}
}

- (void)viewDidLoad
{

AppDelegate *appDelegate=[[UIApplication sharedApplication]delegate];
context=[appDelegate managedObjectContext];
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[self studentNameTextField]setDelegate:self];
[[self studentNoTextField]setDelegate:self];

}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end

------------------------------------------------------------------------------------------------------------------------------
Step 6

same like previous tutorial you have to set ViewController as a RootViewController in AppDelegate.
To do that....

"- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions"  method in AppDelegate.h


#import "ViewController.h"

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

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.
ViewController *rootViewController=
[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
[self.window setRootViewController:rootViewController];

self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}



2 . After Click Search Button
Step 7                                                                                     

Run your App

1






















3.After Click the add Button

























No comments:

Post a Comment