NSArray: обнаружение и удаление несуществующих объектов (файлов) - PullRequest
2 голосов
/ 24 ноября 2011

Используя AQGridview и предоставленный Apple образец DocInteraction , я могу представить файлы в пакете приложения и файлы, предоставленные через iTunes, в каталоге документов моего приложения в виде сетки (Дух).Если я подключаю свой iPad и добавляю файл через iTunes, он добавляет его просто замечательно, но когда я удаляю файл из iTunes с открытым приложением, он не удаляет файл из сетки или массива.Он даже не выдает ошибку, когда я нажимаю на файл, он просто открывает пустой или пустой файл.Как я могу удалить элементы из массива, в котором они хранятся, с помощью цикла foreach или forin (потому что я знаю, что это в конечном итоге ответ), если указанный элемент также не существует в iTunes (или, скорее, в каталоге документов)?

РЕДАКТИРОВАТЬ: в контексте AQGridView мой код обнаруживает изменение в каталоге документов и обновляет NSMutableArray объектов, но это изменение не отражается в сетке.* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *, * * * *,, [self.gridView deleteItemsAtIndices:<#(NSIndexSet *)#> withAnimation:<#(AQGridViewItemAnimation)#>]; метод, кажется, не работает в этом случае.

1 Ответ

2 голосов
/ 24 ноября 2011

Я предполагаю, что ваш NSArray заполнен путями как NSStrings.

NSArray *existingPaths = [paths filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(NSString *path, NSDictionary *bindings){
    return [[NSFileManager defaultManager] fileExistsAtPath:path];
}]];
...