2015-02-18 4 views
0

я в настоящее время работает над Core Data и я следующий кодСоздание нового массива из объекта массива данных массива?

NSManagedObjectContext *managedObjContxt = [self managedObjectContext]; 
NSFetchRequest *fetchReq = [[NSFetchRequest alloc] initWithEntityName:@"BDEvent"]; 
NSMutableArray *fetchedObj= [[managedObjContxt executeFetchRequest:fetchReq error:nil] mutableCopy]; 

Теперь мой массив fetchedObj содержит

<_PFArray 0x7b78d4e0>(
<BDEvent: 0x7b78cf40> (entity: BDEvent; id: 0x7b78be60 <x-coredata://066794C5-FA98-4D76-B306-C62CF65563F2/BDEvent/p1> ; data: { 
    name = rock; 
    status = "D1"; 
    timestamp = "18-02-2015 12:10:10"; 
}), 
<BDEvent: 0x7b78d1f0> (entity: BDEvent; id: 0x7b78be70 <x-coredata://066794C5-FA98-4D76-B306-C62CF65563F2/BDEvent/p2> ; data: { 
    name = Illa; 
    status = "D1"; 
    timestamp = "18-02-2015 12:15:01"; 
}), 
<BDEvent: 0x7b78d290> (entity: BDEvent; id: 0x7b78be80 <x-coredata://066794C5-FA98-4D76-B306-C62CF65563F2/BDEvent/p3> ; data: { 
    name = john; 
    status = "EXIT|D2"; 
    timestamp = "18-02-2015 12:25:05"; 
}) 
) 

Теперь я хочу, чтобы создать 2 массива на основе статуса

Array1 будет содержать значение временной метки, которое не имеет статуса EXIT, и Array2 будет содержать значение метки времени, которое имеет статус EXIT.

Как достичь этого?

ответ

1

Чтобы получить массив с кодом «Выход», добавьте предикат в запрос на выборку, подобный этому.

NSManagedObjectContext *managedObjContxt = [self managedObjectContext]; 
    NSFetchRequest *fetchReq = [[NSFetchRequest alloc] initWithEntityName:@"BDEvent"]; 

//add this line 
    fetchReq.predicate = [NSPredicate predicateWithFormat:@"status contains 'EXIT'"]; 


    NSMutableArray *fetchedObj= [[managedObjContxt executeFetchRequest:fetchReq error:nil] mutableCopy]; 

, чтобы получить массив без кода 'EXIT', используйте следующий предикат,

fetchReq.predicate = [NSPredicate predicateWithFormat:@"NOT (status contains 'EXIT')"]; 
Смежные вопросы