15.4. Reading Data from Core Data
Problem
You want to be able to read the contents of your entities (tables) using Core Data.
Solution
Use an instance of NSFetchRequest
:
-
(
BOOL
)
createNewPersonWithFirstName:
(
NSString
*
)
paramFirstName
lastName:
(
NSString
*
)
paramLastName
age:
(
NSUInteger
)
paramAge
{
BOOL
result
=
NO
;
if
([
paramFirstName
length
]
==
0
||
[
paramLastName
length
]
==
0
){
NSLog
(
@"First and Last names are mandatory."
);
return
NO
;
}
Person
*
newPerson
=
[
NSEntityDescription
insertNewObjectForEntityForName:
@"Person"
inManagedObjectContext:
self
.
managedObjectContext
];
if
(
newPerson
==
nil
){
NSLog
(
@"Failed to create the new person."
);
return
NO
;
}
newPerson
.
firstName
=
paramFirstName
;
newPerson
.
lastName
=
paramLastName
;
newPerson
.
age
=
[
NSNumber
numberWithUnsignedInteger:
paramAge
];
NSError
*
savingError
=
nil
;
if
([
self
.
managedObjectContext
save:
&
savingError
]){
return
YES
;
}
else
{
NSLog
(
@"Failed to save the new person. Error = %@"
,
savingError
);
}
return
result
;
}
-
(
BOOL
)
application:
(
UIApplication
*
)
application
didFinishLaunchingWithOptions:
(
NSDictionary
*
)
launchOptions
{
[
self
createNewPersonWithFirstName:
@"Anthony"
lastName:
@"Robbins"
age:
51
];
[
self
createNewPersonWithFirstName:
@"Richard"
lastName:
@"Branson"
age:
61
];
/* Create the fetch request first */
NSFetchRequest
*
fetchRequest
=
[[
NSFetchRequest
alloc
]
init
];
/* Here is the entity whose contents we want to read */
NSEntityDescription
*
entity
=
[
NSEntityDescription
entityForName:
@"Person"
inManagedObjectContext:
self
.
managedObjectContext ...
Get iOS 6 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.