У меня проблемы с кэшированием пути к существующему файлу - PullRequest
1 голос
/ 12 июля 2011

Вот мой код, я использовал QLPreviewController для отображения подробного вида с PDF-файлом, который я загружаю и храню в начале программы.

Выдает исключение, сообщая, что путь был null.

 -(id<QLPreviewItem>)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)index{
        NSString *name=[selectedItem.source lastPathComponent];
        NSFileManager *fileManager=[NSFileManager defaultManager];
        if([fileManager fileExistsAtPath:name] ){
            NSLog(@"%@ exsit! ",name);  //In!!! 
        }


        name = [name stringByDeletingPathExtension];
           NSLog(@"name for QL: %@",name);  //Name ok!!!
        NSString *path = [[NSBundle mainBundle]pathForResource:name ofType:@"pdf"];
         NSLog(@"path: %@",path);   //Path: null !!!




        return [NSURL fileURLWithPath:path]; //error!!
    }

1 Ответ

0 голосов
/ 07 сентября 2011

Файлы не загружаются в [NSBundle mainBundle]. Попробуйте изменить эту строку на

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePathString = [documentsDirectory stringByAppendingPathComponent:fileName];` 

вместо чтения из [NSBundle mainBundle]. Вы не можете загружать файлы в mainBundle. Это только для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...