Я очень ценю учебник по использованию QLPreviewController
здесь.
Я пытаюсь внедрить этот код в свое приложение с модификацией для отображения файлов из папки «Документы» приложения вместо папки «Ресурсы» (чтобы пользователь мог использовать общий доступ к файлам iTunes для управления документами). Тем не менее, при этом я нажал "EXC_BAD_ACCESS
" ошибка.
Я создаю массив файлов в папке «Документы» для создания списка табличных представлений:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
arrayOfDocuments = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsPath error:NULL];
}
У меня нет проблем с отображением списка файлов из папки «Документы» таким образом.
Код для отображения выбранного файла из списка с помощью QuickLook:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
// When user taps a row, create the preview controller
QLPreviewController *previewer = [[[QLPreviewController alloc] init] autorelease];
// Set data source
[previewer setDataSource:self];
// Which item to preview
[previewer setCurrentPreviewItemIndex:indexPath.row];
// Push new viewcontroller, previewing the document
[[self navigationController] pushViewController:previewer animated:YES];
}
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller
{
return [arrayOfDocuments count];
}
- (id <QLPreviewItem>)previewController: (QLPreviewController *)controller previewItemAtIndex:(NSInteger)index
{
// Break the path into it's components (filename and extension)
NSArray *fileComponents = [[arrayOfDocuments objectAtIndex: index] componentsSeparatedByString:@"."];
// Use the filename (index 0) and the extension (index 1) to get path
NSString *path = [[NSBundle mainBundle] pathForResource:[fileComponents objectAtIndex:0] ofType:[fileComponents objectAtIndex:1] inDirectory: @"Documents"];
return [NSURL fileURLWithPath:path];
}
При запуске этого кода я получаю ошибку EXC_BAD_ACCESS
в строке:
[previewer setDataSource:self];
Любая помощь будет высоко ценится. Заранее спасибо.