как сделать запрос с помощью NSpredicate

Я новичок в xcode и основных данных. Я хочу выполнить следующий запрос, используя основные данные.

Выберите количество (тип комнаты) из таблицы комнат, где тип комнаты = @ "одноместный номер" и статус комнаты = @ "ДА";

Пожалуйста, помогите мне, как использовать NSPredicate для выполнения моего запроса.


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


Ответы (1)


Шаги по работе с Core Data:

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

// 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];

Это все стандартные вещи при работе с Core Data. Если вы проработаете его и попытаетесь понять шаги - вы будете далеко от написания собственных запросов на выборку.

person Abizern    schedule 08.05.2013