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 |
Good Luck!
Tutorial List
- SQLite Based iPhone Application
- json with IOS (Basic) - Tutorial
- Simple Table View in IOS
- Load Distinct Images from array into UITableView
- Simple UIPickerView Example
- Tab Bar Application Part 1
- Tab Bar Application Part 2
- Tab Bar Application Part 3 ( with Login Screen )
- Tab Bar Application Part 4 ( Navigation )
- Table View Design in IOS Part 1
- Table View Design in IOS Part 2 ( Time Table )
- How to Add search bar in Table View
- Local Notification in IOS
- Core Data (For Beginners )
- Core Data Tute 2 (Add/Delete/Search)
- Core Data Tute 3 (Two table)
- Custom Cell in UITableview
- Lazy Loading
- Pull to Refresh in TableView
- Working with keyboard in Objective C - Part 1