как да правите заявки с помощта на NSpredicate

Нов съм в xcode и основните данни. Искам да изпълня следната заявка, използвайки основни данни.

Изберете брой (roomtype) от таблицата на стаите, където roomtype=@"ac single" и roomstatus=@"YES";

Моля, насочете ме как да използвам NSPredicate за изпълнение на моята заявка.


person Francis S    schedule 08.05.2013    source източник


Отговори (1)


Стъпките при работа с основните данни са:

Създайте заявка за извличане, за да изтеглите обекти в контекста на управлявания обект

// Assuming you have an entity called Rooms:
[NSFetchRequest fetchRequestWithEntityName:@"Rooms"];

Сега създайте предикатите, които да бъдат приложени към този обект, за да филтрирате това, което се връща

// Assuming that the Rooms entity has attributes for "roomType" and "roomStatus"
// I'd actually use %K and attributes - but this will do until you learn about them.
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"roomType == %@ and roomStatus == %@", @"ac single", @"YES"];

[request setPredicate:predicate];

Изпълнете заявката за извличане

// Assuming you have the managed Object Context in a property
NSError *error;
NSArray *results = [self.moc executeFetchRequest:request error:&error];

// Make sure the results are not nil, if they are handle the error
if (!results) {
    // Handle error in here using the error parameter you passed in by reference.
}

Резултатите вече са в масив и можете да получите броя на обектите, които отговарят на предиката, просто с:

NSUInteger resultCount = [results count];

Всичко това са стандартни неща при работа с основни данни. Ако си проправите път през него и се опитате да разберете стъпките - ще изминете дълъг път до писането на вашите собствени заявки за извличане.

person Abizern    schedule 08.05.2013