это мой первый вопрос для заранее извинений за любую ошибку.
Мой вопрос: удалить повторяющееся значение, сохранив тот же порядок, что и массив. Как и мой формат массива: -
(
{
author = "";
content = "After almost";
"document_name" = "20150108";
"news_id" = 280;
},
{
author = "";
content = "Content";
"document_name" = "20150108"
"news_id" = 282;
}
);
На самом деле я получаю этот массив из Core Data, и я знаю о SetPropertiesToFetch, например: -
[request setResultType:NSDictionaryResultType];
[request setReturnsDistinctResults:YES];
[request setPropertiesToFetch:@[@"news_id"]];
но из этого я получаю только поле news_id, но мне нужны и все остальные поля. также я знаю о NSSet
NSArray *arrayWithNoDuplicates = [[NSSet setWithArray:papersObject.paperSubject] allObjects];
из-за этого я потерял свой порядок сортировки, который я сделал в предикате.
и во время поиска я нашел enumerateObjectsUsingBlock
NSMutableArray *filteredManagers = [NSMutableArray array];
[managers enumerateObjectsUsingBlock:^(Manager manager, NSUInteger idx, BOOL stop) {
if (![filteredManagers containsObject:manager]) {
[filteredManagers addObject:manager];
}
}];
но в той же статье говорится, что между циклом for и блоком нет большой разницы. поэтому я не могу использовать это, потому что у меня тысячи данных, и нехорошо помещать цикл для проверки и удаления данных из массива.
так что кто-нибудь знает о лучшем решении, которое удаляет повторяющийся объект и сохраняет сортировку со всеми другими полями в словаре, пожалуйста, дайте мне знать.