Я знаю, что уже слишком поздно для этого вопроса, однако я бы хотел добавить свое решение.
Я использую UIGraphicsBeginPDFContextToFile
для создания файла PDF. Я создал класс с именем PDFCreator
из базового класса UIViewController
, в котором у меня есть две функции, подобные этой:
- (void) beginContextWithFile:(NSString *)filename
{
pageSize = CGSizeMake(1024, 1424);
UIGraphicsBeginPDFContextToFile(filename, CGRectZero, nil);
UIGraphicsBeginPDFPageWithInfo(CGRectMake(0, 0, pageSize.width, pageSize.height), nil);
[self createInitialPart];
}
- (void) endContext
{
UIGraphicsEndPDFContext();
}
Я создал объект этого класса в файле делегата приложения, так как он будет сохранять объект до тех пор, пока приложение не завершится (как было моим требованием).
Вначале я звоню beginContextWithFile:
, и он создаст файл pdf в каталоге документов вместе с данными, которые я добавляю посредством вызова метода createInitialPart
.
В какой-то момент позже мне нужно обновить этот файл, поэтому у меня есть другой метод с именем secondPart
, хотя я вызвал его для добавления дополнительных данных в этот файл.
Как только я заполню все, что я закончил с созданием, мне нужно вызвать endContext
класса PDFCreator
, который завершит генерацию PDF, и да, у меня будет обновленный файл.
Это немного сложно, и я не выполнял никаких проверок памяти, хотя у меня было требование, я нашел решение:)