2012-04-16 3 views
0

Мне нужно отфильтровать следующий массив с status, равный «U», и я использовал следующее.Фильтр с использованием предиката

NSArray *result = [alertModified.senders filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(subscriptions.status = %@)",@"U"]]; 

Но я получаю пустые массивы.

Пожалуйста, помогите мне в фильтрации этого?

Массив строки:

(senderCode = CPFB, senderName = CPFB, forSenderLevel = 0, subscriptions = (
"correspondenceListId = 102,status = S,senderCode = AA,subject = Letter,retentionPeriod = 0, uniqueBillIdentifier = (null),senderResponseStatus = (null),subscriptionDate = ,effectiveDate = ", 
"correspondenceListId = 103,status = U,senderCode = BB,subject = Nomination Letters,retentionPeriod = 0, uniqueBillIdentifier = (null),senderResponseStatus = (null),subscriptionDate = ,effectiveDate = ", 
"correspondenceListId = 104,status = U,senderCode = AA,subject = Yearly statements,retentionPeriod = 0, uniqueBillIdentifier = (null),senderResponseStatus = (null),subscriptionDate = ,effectiveDate = ", 
"correspondenceListId = 105,status = U,senderCode = BB,subject = All Future Letters,retentionPeriod = 0, uniqueBillIdentifier = (null),senderResponseStatus = (null),subscriptionDate = ,effectiveDate = ")) 
+0

Итак, вам нужно отсортировать ** subscriptions ** или всю цепочку? –

+0

Это массив разделенных запятыми строк? – wbyoung

+0

Мне не нужно сортировать, но мне нужно отфильтровать запись, которая имеет статус «U», то есть я должен получить только 3 записи сверху. Над строкой представлено представление иерархии объектов. – lasi

ответ

0

В вашем примере вы должны фильтровать сам список подписки, а не все отправитель. Вы должны применить фильтр к каждому отправителю. Попробуйте изменить свою линию фильтров на это и проверьте, дают ли это результаты:

NSArray *result = [[alertModified.senders objectAtIndex:0].subscriptions filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(status = %@)",@"U"]]; 
+0

Спасибо Ангел. Но я хочу перебирать вложенные массивы, а не внутри одного массива. Фильтр фрагмента кода в одном списке. – lasi

Смежные вопросы