Xcode с VFR Reader загрузка PDF ошибка
Я использую VFR / Reader для открытия файлов PDF. Когда я открываю первый файл PDF, мое приложение открывает его правильно, но когда я открываю другой, мое приложение снова открывает первый файл.
Это моя функция для чтения файла PDF
-(void)readIssue:(IssueMath *)issue {
NSString *filePath = [[issue.contentURL path] stringByAppendingPathComponent:@"Mathematics.pdf"];
NSLog(@"Read Path 1: %@ ",filePath);
ReaderDocument *document = [ReaderDocument withDocumentFilePath:filePath password:nil];
NSLog(@"Read Path 2: %@ ",document.fileURL);
ReaderViewController *readerViewController = [[ReaderViewController alloc] initWithReaderDocument:document];
readerViewController.delegate = self; // Set the ReaderViewController delegate to self
readerViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
readerViewController.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentModalViewController:readerViewController animated:YES];
}
А это NSLog
выход:
2012-11-02 20:09:31.081 MAGAZINE[314:15203] Read Path 1: /Users/eakmotion/Library/Application Support/iPhone Simulator/5.0/Applications/EC25BC08-E1E7-44B6-9AD8-0A321EEAC8B6/Library/Caches/ISSUE3_2011/Mathematics.pdf
2012-11-02 20:09:31.109 MAGAZINE[314:15203] Read Path 2: file://localhost/Users/eakmotion/Library/Application%20Support/iPhone%20Simulator/5.0/Applications/EC25BC08-E1E7-44B6-9AD8-0A321EEAC8B6/Library/Caches/ISSUE2_2011/Mathematics.pdf
Я хочу прочитать "ISSUE3_2011/Mathematics.pdf", но приложение все еще читает первый путь "ISSUE2_2011/Mathematics.pdf"
Зачем filePath
все тот же?
Как я могу решить эту проблему?
3 ответа
Да, ваше решение работает, но если вы хотите отслеживать все ваши PDF-документы (например, текущей страницы нет)
Вы должны дать уникальные имена для ваших локальных файлов PDF. Потому что он будет искать файл Mathematics.plist в локальной папке устройства, чтобы прочитать номер текущей страницы..
/ Пользователи / eakmotion / Библиотека / Поддержка приложений / iPhone Simulator/5.0/ Приложения /EC25BC08-E1E7-44B6-9AD8-0A321EEAC8B6/ Библиотека / Кэши /ISSUE3_2011/Mathematics.pdf
Файл://localhost/Users/eakmotion/Library/Application%20Support/iPhone%20Simulator/5.0/Applications/EC25BC08-E1E7-44B6-9AD8-0A321EEAC8B6/Library/Caches/ISSUE2_2011/Mathematics.pdf
эти файлы ищут один и тот же файл Mathematics.plist в методе класса ReaderDocument "unarchiveFromFileName"
NSString *archivePath = [ReaderDocument applicationSupportPath]; // Application's "~/Library/Application Support" path
NSString *archiveName = [[filename stringByDeletingPathExtension] stringByAppendingPathExtension:@"plist"];
попробуйте изменить этот раздел кода или дать своим файлам уникальные имена, такие как Mat Matrix_ISSUE3_2011.pdf и Mat Matrix_ISSUE2_2011.pdf.
Я знаю, что этому вопросу уже несколько месяцев, но на случай, если кто-то столкнется с такой же проблемой (как и я), я нашел решение для него.
В источнике vfr/Reader найдите Sources/ReaderDocument.m
файл и найдите функцию с именем + (ReaderDocument *)withDocumentFilePath:
,
Там закомментируйте условие, которое предотвращает перезагрузку документа, как показано ниже.
+ (ReaderDocument *)withDocumentFilePath:(NSString *)filePath password:(NSString *)phrase
{
ReaderDocument *document = nil; // ReaderDocument object
document = [ReaderDocument unarchiveFromFileName:filePath password:phrase];
//if (document == nil) // Unarchive failed so we create a new ReaderDocument object
//{
document = [[ReaderDocument alloc] initWithFilePath:filePath password:phrase];
//}
return document;
}
Это был мой быстрый и грязный подход к загрузке документов. Предостережение в этом решении заключается в том, что программа чтения PDF не будет отслеживать, где вы остановились на своих страницах PDF, что в моем приложении не имело значения.
Я столкнулся с той же проблемой и нашел следующее решение:
// Path to first PDF file
NSString *filePath =
[[NSBundle mainBundle] pathForResource:@"someBookeName" ofType:@"pdf"];
Просто измените путь к файлу, как показано выше. Как видите, теперь вам не нужно NSArray * PDF
,