0

我对上下文世界很陌生。

  1. 我使用以下方法创建一个 pdfcontext:

    NSMutableData* pdfData = [ [[NSMutableData alloc] initWithLength:1000] retain];
    CGRect bounds = (CGRectMake(100, 100, 100, 100));
    NSDictionary* documentInfo = nil;
    UIGraphicsBeginPDFContextToData (pdfData,
                                 bounds,
                                 documentInfo);
    UIGraphicsBeginPDFPage();
    
  2. 然后我用不同的类画它

  3. 然后我发出

    UIGraphicsEndPDFContext();
    

当我画完它。

我不清楚的是如何从上下文中获取 pdfData,以便我可以将其作为 NSData 发送回我的调用者。任何帮助表示赞赏。我假设在我的方法中 pdfData 被保留在上下文中。谢谢!

4

1 回答 1

1

当您调用 时UIGraphicsEndPDFContext,它会将 PDF 数据放入pdfData您提供的对象中。由于 anNSMutableData是 的子类NSData,因此您可以将其返回给调用者。没有必要做任何其他事情。

另外,不要这样做:

NSMutableData* pdfData = [[[NSMutableData alloc] initWithLength:1000] retain];

alloc/init 返回一个保留对象。没有必要再次保留它。此外,无需指定数据的大小——它会自动扩展。所以只需这样做:

NSMutableData* pdfData = [[NSMutableData alloc] init];
于 2012-06-02T18:23:10.290 回答